回答
if (typeof variable !== 'undefined') {
// ..
}
else
{
// ..
}
在这里找到更多的解释:
您可以使用类似这样
if (typeof varname != 'undefined')
{
//do this
}
else
{
//do this
}
您只需检查的类型。
if(typeof yourVar !== "undefined"){
alert("defined");
}
else{
alert("undefined");
}
使用in
运算符。
'myVar' in window; // for global variables only
typeof
检查将用于如果变量返回true,
- 它尚未定义
- 它已被定义并具有值
undefined
,或 - 它已被定义但尚未初始化。
下列实施例将说明在第二和第三点。
// defined, but not initialized
var myVar;
typeof myVar; // undefined
// defined, and initialized to undefined
var myVar = undefined;
typeof myVar; // undefined
您可以使用*窗口*只有在全局变量的特殊情况下,他们也取得了全局对象的属性。局部变量没有这样的可变变量对象。假设有一个窗口对象可能对浏览器来说是合理的,但一般来说并不是必须的。 – RobG
@RobG - 它不必是'window'或全局对象。任何对象都可以在这里使用。你已经提出了关于本地定义的变量在这里不可访问的好处。我有兴趣了解是否有一种方法可以根据我的第一个标准来确定局部变量的未定义。 – Anurag
如果你正在谈论变量和范围,那么你只能区分全局变量(因为它们是全局对象的属性)和其余部分。在嵌套函数中,由于无法访问相关变量对象,因此无法判断标识符是本地函数变量还是外部函数变量。对象属性解析是另一回事。 – RobG
- 1. 测试是否定义了一个动态变量
- 2. JavaScript:测试未定义值的变量;测试物体是否是阵列
- 3. 在Jinja2中,如何测试变量是否未定义?
- 4. 可能测试一个变量是否仅包含特定值?
- 5. 测试代码中是否定义了未声明的变量是否合理?
- 6. 测试一个变量是否是另一个变量的良好预测变量
- 7. 在Ruby a la JavaScript中测试未定义的变量?
- 8. 如何测试变量是否在一定范围内?
- 9. 测试gdb便利变量是否已定义
- 10. 测试两个变量是否等于一个变量在PHP的if语句
- 11. 测试某个值是否在一组和分配变量
- 12. 测试变量是否存在
- 13. 函数测试变量是否存在
- 14. 是否可以测试一个C定义是否在gnu Makefile中声明?
- 15. 是否可以在Swift if语句中定义一个变量?
- 16. 是否可以在CSS中定义一个变量?
- 17. 是否可以在freemarker中取消定义一个变量?
- 18. 给定两个变量,测试其他变量是否在它们之间
- 19. 如何测试一个变量是否是原始的PHP
- 20. 如何测试一个变量是否是Moment.js对象?
- 21. 如何测试变量是否是C#中的变量类型?
- 22. 如何测试Javascript中的变量是否已初始化?
- 23. 如何查看是否在Javascript中定义了变量名称
- 24. 将变量设置为未定义在JavaScript中是否安全?
- 25. 检查变量是否(定义)在JavaScript中不起作用
- 26. XPath 2.0:如何测试我们在变量中是否是一个元素?
- 27. 定义一个TypeScript调试变量
- 28. 在JavaScript中测试未定义的变量/可能的JavaScript错误?
- 29. 的javascript:定义一个函数变量
- 30. 我试图定义一个变量的hash_map不是在VS2008
使用!==严格的比较和更好的性能。 –
@ AmericanYak-在*的typeof *测试算法用于解决[''==(http://ecma-international.org/ecma-262/5.1/#sec-11.9.3)和['=== '](http://ecma-international.org/ecma-262/5.1/#sec-11.9.6)是相同的,因为两个值都具有相同的类型(字符串),所以更好的性能来自哪里? – RobG
这失败的时候,因为'的typeof null'是'Object' – nikjohn