我有一个简单的函数:
var k = 10;
function getNumber(k){
if ((1<2)&&(k===10)) {
k = 11;
return 4;
}
return 2;
}
console.log(getNumber())
console.log(getNumber())
为什么它总是给出2,忽略if ()?
发布于 2020-09-21 20:47:54
参数k的作用域是函数,去掉它:
var k = 10;
function getNumber(){
if ((1<2)&&(k===10)) {
k = 11;
return 4;
}
return 2;
}
console.log(getNumber())
console.log(getNumber())
发布于 2020-09-21 20:47:41
未将k变量提供给getNumber()。
在函数作用域中,参数未定义
发布于 2020-09-21 20:52:00
为什么总是给2,忽略if ()?
它不会忽略if(),它只是条件为false -可以使用console.log进行检查
var k = 10;
function getNumber(k){
console.log(k, k === 10);
if ((1<2)&&(k===10)) {
k = 11;
return 4;
}
return 2;
}
console.log(getNumber())
console.log(getNumber())
正如您所看到的,函数内部的k是undefined,并且由于此变量是函数的局部变量,因此外部作用域中的k不是您希望通过将其设置为11来检查的值。
https://stackoverflow.com/questions/63992542
复制相似问题