变量传递给控制台读取的函数.log但不传递给其他变量

variable passed to function read by console.log but not by other variable

本文关键字:变量 log 其他 读取 控制台 函数      更新时间:2023-09-26

我正在尝试将变量传递给函数,但它不起作用。

单击 DIV #getNum 调用函数

<div id="getNum">GET NUM</div> 

。调用函数 makeID(( 并传递数字 17

    $(document).ready(function(){
    $("#getNum").click(function(){
        makeid(17);
        });
   });

下面非常简单的例子来显示想要什么。

function makeid(num){ // It doesn't work as the parameter isn't passed 
   var chooseLetters = "abcdefghijklmnopqrstuvwxyz";
   var loopNum=num;
  for( var i=0; i < loopNum; i++ )  // loopNum does not work!
        text += chooseLetters.charAt(Math.floor(Math.random() * chooseLetters.length));
      return text;
} // END function makeid();

/* 工作示例 */

function makeid(num){ // why can I not pass the parameter to the for loop?
//console.log(num); // console.log reads num!
var num = num; // variable num is not read!
    var loopNum = num; // works if hard coded

        var chooseLetters = "abcdefghijklmnopqrstuvwxyz";
        for( var i=0; i < loopNum; i++ )
            text += chooseLetters.charAt(Math.floor(Math.random() * chooseLetters.length));
        //console.log(text);
        return text;
    } // END function makeid();

问题是你的文本变量。 在与它连接之前,您必须定义它。基本上,您正在尝试将字符串连接到不存在的变量。这将引发错误,并且您的脚本将不起作用。

text+='some text';text=text+'some text';的简写 您注意到,当代码中未定义文本变量时,这将带来问题。

function makeid(num){ // It doesn't work as the parameter isn't passed 
text='';
   var chooseLetters = "abcdefghijklmnopqrstuvwxyz";
   var loopNum=num;
  for( var i=0; i < loopNum; i++ )  // loopNum does not work!
        text += chooseLetters.charAt(Math.floor(Math.random() * chooseLetters.length));
      return text;
} // END function makeid();

工作小提琴

http://jsfiddle.net/kasperfish/zRGCR/1/

我相信一旦你说

var num = num; 

"var num"将是一个隐藏原始参数的新变量。尝试将这条线取出。