我正在创建变量并在 for 语句中使用它
for(var i = 0; i < 10; i++) {
console.log(i)
}
工作正常,结果为 1-10;
当我在 if
条件中写相同的内容时
if(var value = 10) {
console.log("Evaluate");
}
结果是意外的 token 变量
。
当我声明一个变量(var a = 10)时,导致同样的错误。有什么问题吗?
最佳答案
if
语句仅接受内部的表达式(计算结果为值的东西)。像 var value = ...
是一个语句 - 它不是计算一个值,而是做一些事情(即创建一个局部变量)绑定(bind)到名称值
)。因此,由于 var value = ...
无法作为表达式进行计算,因此会引发错误。
有些事物既可以作为语句也可以作为表达式(例如函数)进行计算,但变量创建不是其中之一。
请注意,变量赋值可以在if
内进行,因为赋值确实计算为分配的值:
var value;
if(value = 10) {
console.log('value now has the value 10');
}
但这确实读起来很困惑 - 代码的读者可能会立即担心这是否是一个拼写错误。最好尽可能在 if
条件之外分配变量。
仅当您想要创建新变量时才使用var
。如果您只是想检查一个变量(例如,检查名为value
的变量是否为10
),那么只需打印该变量名称,并使用比较运算符(===
,而不是 =
):
if (value === 10) {
// do stuff
}
关于javascript - 在 if 条件下创建变量时出现意外的标记 var,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53236464/