【发布时间】:2010-09-30 20:15:03
【问题描述】:
什么样的变量会不通过这个:
if(myVar){//code}
布尔假?无效的?布尔假和空?还有什么?
谢谢。
【问题讨论】:
标签: javascript if-statement boolean
什么样的变量会不通过这个:
if(myVar){//code}
布尔假?无效的?布尔假和空?还有什么?
谢谢。
【问题讨论】:
标签: javascript if-statement boolean
【讨论】:
myVar 未声明,您将获得ReferenceError。一个变量可以被声明并持有undefined作为它的值,例如,当你声明一个变量而不用一个值初始化它时:var myVar;它将被声明,但未初始化,它将持有undefined 作为它的值,例如alert(myVar); 将提醒"undefined"。在某些时候,您还可以为其分配 undefined 值,例如myVar = undefined;。请记住,未声明 != undefined
typeof <undeclared name> 在 IE 中生成“未定义”,这让我很失望。
typeof operator 的操作数表达式是一个无法解析的引用(它在作用域链中不存在),将显式返回字符串"undefined".
true,例如:if (new Boolean(false)) { alert('Javascript FTW!'); } -
false 只有当它的长度是0(一个空字符串),这不是@987654348的情况@(它的长度是1)。您可以通过alert(!!"0"); 或alert(Boolean("0")); 轻松测试它,这将为您提供true。是的,我描述的值是基于 ECMAScript 语言规范的,它们是跨浏览器一致地实现的。