重新认识JavaScript中的true

导读:跟其他大多数的计算机语言一样,JavaScript也支持Boolean类型的数据,这些值可以被设置为true或者false。另外,JavaScript中的所有数据类型的值都有一个默认的布尔值,一般称为真值(truthy)或者假值(falsy)。在处理真值和假值时会有一点奇怪,尤其是变量与变量之间进行比较的时候。理解更多相关的怪异规则会对我们开发调试复杂的客户端应用程序很有帮助。

今天优优推荐的这篇译文,就会对truthy和falsy进行详细讲解,希望对大家有帮助。

真值和假值

下面这些值在JavaScript中都是falsy:

false

0(数字零)

""(空字符串)

null

undefined

NaN(一个特殊的Number值,意为Not-a-Number!)

除上面几个值以外,其他所有值都是truthy,包括字符串"0","false",空函数,空数组,空对象。

vara=!!(0);//把变量的值设为falsevarb=!!("0");//true假值的比较

Falsyvalues遵循一些看起来怪怪的比较规则,这些规则可能会导致程序出现一些逻辑错误。

假值false,0,""三者是相等的,并且它们之间可以相互比较。

varc=(false==0);//truevard=(false=="");//truevare=(0=="");//true

假值null,undefined,除了它们自身之外和任何值都不相等。

varf=(null==false);//falsevarg=(null==null);//truevarh=(undefined==undefined);//truevari=(undefined==null);//true

最后,假值NaN和任何值都不相等,包括NaN本身!

varj=(NaN==null);//falsevark=(NaN==NaN);//false

你应该知道typeof(NaN)返回"Number"。幸运的是,JavaScript有一个核心函数isNaN()来判断一个值是否是NaN。

如果还是有疑惑

那么请在使用真值、假值容易导致逻辑错误的地方,使用严格相等(===)和严格不相等(!==)吧。这两个操作符会同时比较对象的类型和值。

varl=(false==0);//truevarm=(false===0);//false

在你写JavaScript代码的时候,真值和假值让你痛苦过吗?

作者简介:CraigBuckler是一名英国特约web顾问,他早在年就搭建了一个在IE2.0上面展示的页面。从那时候开始,他就开始倡导web标准,可访问性,HTML5技术的最佳实践。。

原文:







































北京白癜风的治疗医院
儿童白癜风能治好吗



转载请注明:http://www.guyukameng.com/html/3463.html