Javascript判断数据类型与真假值隐形转换研究

一、引言

我们在开发的时候经常要判断真和假,这是我们经常写的代码:

if(a){
  alert(1)  
}

那我们怎么判定a是真还是假呢?下面这些值的真假又是多少呢?它们的数据类型又是怎样的呢?

"",
0,
"true",
"false",
True,
true,
"undefined",
undefined
null
Null
"null"
"NULL"
"object"

二、数据类型

判断数据类型一般用两种方法:typeof和Object.prototype.toString.call(data)。

举个栗子:

我们用typeof看看它的数据类型:

看完null,再看一个空的json对象:

发现它的类型也是"object",那么我们怎么区分它们呢?用Object.prototype.toString.call(data)方法看看:

实验说明Object.prototype.toString.call方法能够得到更加具体的数据类型。我们也可以通过这个方法区分一个对象到底是Object还是Null,还是Array。

另外,我们用typeof或者Object.prototype.toString.call方法的时候,要注意,返回值是字符串:

 三、真假值隐形转换

说明字符串“0”是为真的。

说明undefined为false。

说明null是false

 

字符串的undefined为真。

一个空的json是真。

那么一个空的数组呢?

一个空的数组也是为真的。

posted @ 2017-11-09 13:31  andyliud  阅读(176)  评论(0编辑  收藏  举报