初学者变量声明-JavaScript
我正在玩这个简单的编码挑战来反转字符串:初学者变量声明-JavaScript,javascript,variables,Javascript,Variables,我正在玩这个简单的编码挑战来反转字符串: function FirstReverse(str) { var newStr; for (var i = str.length - 1; i >= 0; i--) { console.log(str.charAt(i)); var newStr = newStr + str.charAt(i); } return newStr; } console.log(FirstReverse("hey"
function FirstReverse(str) {
var newStr;
for (var i = str.length - 1; i >= 0; i--) {
console.log(str.charAt(i));
var newStr = newStr + str.charAt(i);
}
return newStr;
}
console.log(FirstReverse("hey"));
结果变成了unfinedeyeh
,而不是yeh
。但是,当我将var newStr
更改为var newStr=''代码>,它突然起作用了
在我将newStr
分配给一个空字符串之前,JavaScript认为它是什么数据类型?如果不初始化变量,它将以开头(您可能已经从结果中了解到)
未指定值的变量类型为未定义
。A.
如果变量
正在评估的对象没有指定的值。函数返回
未定义
如果未返回值
如果您不初始化变量,它将以开始(您可能已经从结果中了解到)
未指定值的变量类型为未定义
。A.
如果变量
正在评估的对象没有指定的值。函数返回
未定义
如果未返回值
在我将newStr
分配给空白字符串之前,JavaScript认为它是什么数据类型
var-myVar
只声明变量,但不指定初始值。任何未明确指定值的值都是未定义的
由于循环是自赋值的newStr
(newStr=newStr+str.charAt(i);
),第一次迭代将尝试将未定义的
连接到自身,这与连接操作数(+
)一起将未定义的
强制为未定义的
在我将newStr
分配给空白字符串之前,JavaScript认为它是什么数据类型
var-myVar
只声明变量,但不指定初始值。任何未明确指定值的值都是未定义的
由于循环是自赋值的newStr
(newStr=newStr+str.charAt(i);
),第一次迭代将尝试将未定义的
连接到自身,这与连接操作数(+
)一起将未定义的
强制为未定义的
如果在初始化变量时未设置值,则将其设置为未定义
我认为最好为每个初始化的变量设置一个“默认值”。如果在初始化变量时未设置值,则将其设置为未定义
我认为最好为每个初始化的变量设置一个“默认值”。您需要使用var newStr=''初始化变量代码>并且不需要在for loop中使用var重新声明它。JavaScript有时会因为具有未定义或“部分”定义值的奇怪行为而受到批评。检查这一点以获得更不可预测的结果,JavaScript从1:20开始:您需要使用var newStr=''初始化变量代码>并且不需要在for loop中使用var重新声明它。JavaScript有时会因为具有未定义或“部分”定义值的奇怪行为而受到批评。查看此内容以了解更不可预测的结果,JavaScript从1:20开始: