西红柿爱番茄

Feed Rss

javascript中的假值面面观

01.06.2010, Javascript, by .

我们都知道,javascript中有一套假值机制,包括有“null,undefined,”,0,false”这五个基本类型,但同时还有”[],{},‘ ’“等容易混淆的类型,那下面让我们来看一下这些值在”==“和”===“这两者之间的关系表:

== / === false 0 NaN null undefined “” (empty string) ” ” (white space) [] {}
false yes/yes yes/no no/no no/no no/no yes/no yes/no yes/no no/no
0 yes/no yes/yes no/no no/no no/no yes/no yes/no yes/no no/no
NaN no/no no/no no/no no/no no/no no/no no/no no/no no/no
null no/no no/no no/no yes/yes yes/no no/no no/no no/no no/no
undefined no/no no/no no/no yes/no yes/yes no/no no/no no/no no/no
“” (empty string) yes/no yes/no no/no no/no no/no yes/yes no/no yes/no no/no
” ” (white space) yes/no yes/no no/no no/no no/no no/no yes/yes no/no no/no
[] yes/no yes/no no/no no/no no/no yes/no no/no no/no no/no
{} no/no no/no no/no no/no no/no no/no no/no no/no no/no

从上面的列表详细的列出了各种假值之间在”==”和”===”的关系。下表是各种假值在“!!”下的返回值的情况关系表:

value !!value
false false
0 false
NaN false
null false
undefined false
“” (empty string) false
” “(white space) true
[] true
{} true

上面两个表列出的各种假值的关系以及假值在”!!”下的返回值的情况,非常值得我们去注意在一些项目中细节的考虑,以期于防患于未然。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>