如何让语句识别未定义的变量
How to have a statement identify an undefined variable?
假设您有以下函数:
var variable;
function(variable);
function function(variable) {
alert ("variable equals " + variable);
if (variable != 'undefined') {
~~~code1~~~
} else {
~~~code2~~~
}
}
警报输出:
变量等于未定义的
但是,~~~code2~~~从未执行过。我猜我的语法不正确。如果我还没有定义变量,如何让函数函数执行~~~code2~~~?
额外信息
当变量变量被硬编码时,如以下代码所示:
var variable;
function(variable)
function function(variable) {
variable = 2;
alert ("variable equals " + variable);
if (exponent == 2) {
~~~code1~~~
} else {
~~~code2~~~
}
}
~~~code1~~~被执行。
> exponent != 'undefined'
你需要了解抽象等式比较算法。以上尝试将exponent
的值与字符串"undefined"进行比较。由于exponent
已定义但尚未赋值,因此它将返回值undefined
,该值不等于字符串"undefined"(根据上面的算法)。
因此,您可以将其值与未定义的值进行比较:
exponent != undefined
或者您可以使用typeof
运算符将值的类型与适当的字符串值进行比较(因为它总是返回字符串):
if (typeof exponent != 'undefined')
在这种情况下,无论您使用上面的严格版本还是抽象版本(分别为!==
或!=
)都没有任何区别。
相关文章:
- Socket.IO未定义变量
- 更改 Javascript 对象中所有未定义变量的值
- coffeescript,类未定义变量
- 使用下划线未定义变量时发生抛出/捕获错误
- 网络浏览器正在成为“;严格的“;用于Javascript中未定义变量的操作
- 使用window.location时未定义变量
- 传递给数据的未定义变量
- bizzare未定义变量
- JavaScript 中全局范围内存在未定义变量的原因是什么?
- JavaScript onClick 参数表示未定义变量
- 在指令中使用 $scope.$watch 处理未定义变量的替代方法
- 对于循环错误:未捕获的引用错误,未定义变量.怎么了
- JavaScript / YouTube API - 未定义变量 YT
- 未捕获的引用错误:在测试真实性时未定义变量
- 通过使用JavaScript“未定义”(变量),我们可以释放系统内存
- 与未定义变量相关的错误
- Angularjs 控制器中的未定义变量
- 角度解析:未定义变量
- BackboneJS Uncaught ReferenceError:未定义变量
- 使用Underscore JS部分和for循环的未定义变量对象