我看到一位大师这样做:
var example = '';
后来他继续这样说:
example += '<div>just a div</div>';
我想知道这样做是否有什么不同:
var example;
example += '<div>just a div</div>';
我真的不知道通过执行第二种方法我是否做错了,我必须像第一个示例所示的那样进行编码。
<小时/>更新了!
非常感谢您的回答,好吧,我明白了,我需要定义我的变量才能与它一起工作,但是另一个问题来了......这位大师也在这样做:
var guess;
然后他就这样做了:
guess += myfunction( upper );
其中 myfunction 声明如下:
function myFunction( upper ){
return Math.floor( Math.random() * upper ) + 1;
}
那么,为什么这里有所不同呢?请问你们谁能回答一下吗?
谢谢!
<小时/>第二次更新!
再次感谢!
我决定把JS大师所做的全部代码贴出来,目前我还不太明白,所以也许你能解开我的疑虑。
var randomNumber = myFunction( 10 );
var guess;
var attempts = 0;
var answer = false;
function myFunction( upper ){
return Math.floor( Math.random() * upper ) + 1;
}
do{
guess = prompt( "I created a number from 1 till 10, can you guess it?");
attempts += 1;
if( parseInt( guess ) === randomNumber ){
answer = true;
}
}while( ! answer )
document.write( "Took you " + attempts + " attempts to guess the number " + randomNumber);
请看一下:
var guess;
以及稍后是如何声明的,那么为什么这里工作得很好,但在我的第一个示例中我必须在声明变量时放置“”?
我希望我的问题对您来说足够清楚!
感谢您的时间和耐心!
最佳答案
当你这样做时:
var example;
example += '<div>just a div</div>';
你最终会得到:
`"undefined<div>just a div</div>"`
这是因为当您不初始化变量时,它是undefined
,当您尝试添加它时,它可以转换为合理的字符串“undefined”
到另一个字符串。
当你这样做时:
var guess;
guess += myfunction( upper );
function myFunction( upper ){
return Math.floor( Math.random() * upper ) + 1;
}
您正在将一个数字
添加到未定义
。这会导致 NaN
(不是数字),因为 undefined
无法转换为合理的数字
。
您下次可以通过打开浏览器的开发人员工具并在控制台中运行代码来自行检查。
编辑:
当你这样做时:
var guess;
guess = prompt( "I created a number from 1 till 10, can you guess it?");
没有问题,因为您只需将一个字符串
分配给guess
变量即可。在前面的示例中,您向变量添加了一些内容,这意味着如果它们是不同的类型,那么 JavaScript 必须尝试做一些明智的事情。
关于javascript - 仅使用 ' ' 标记声明 JavaScript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44079437/