js判断数据类型

166 阅读1分钟

一、js中的数据类型分为基本数据类型和引用数据类型包括如下

null (其时就是空的Object) undefined string boolean number object array 1.使用typeof判断,这种方式只能判断出基本类型。引用类型返回值全部为"Ojbect" var test=[13.3,9]; var obj = {}; var str = "hello" var flag = true console.log(typeof str) //返回string console.log(typeof flag) //返回boolea console.log(typeof test) //返回object console.log(typeof obj) //返回object 2.使用constructor属性,返回数据的引用类型,可判断全部类型

 ```
  var test=[13.3,9];
 var obj = {};
 var str = "hello"
 var flag = true
 console.log(test.constructor)  //返回Array
 console.log(obj.constructor)  //返回Object
 console.log(str.constructor)  //返回String
 console.log(flag.constructor)  //返回Boolean
```

3.使用Object.prototype.toString.call(),可判断全部类型

    ```
  var test=[13.3,9];
 var obj = {};
 var str = "hello"
 var flag = true
 console.log(Object.prototype.toString.call(test))  //返回[object Array]
 console.log(Object.prototype.toString.call(obj))  //返回[object Object]
 console.log(Object.prototype.toString.call(str))  //返回[object String]
 console.log(Object.prototype.toString.call(flag))  //返回[object Boolean]
```

ps:js中一切皆对象,所有类型的方法都继承自对象,数组对象的toString方法如下

```
var test = [1,23]
console.log(test.toString())  //返回1,23
```

二、判断

undefined == true   //false
undefined == false  //false

undefined == null    //true
undefined === null  //false

null ==  false          //false
null == true            //false

"" == false              //true
"" == true               //false
== false               //true
== true                //false
-0 == false              //true
-0 == true               //false

NaN == false           //false
NaN == true            //false
NaN == NaN            //false NaN与任何值都不相等,包括它自身
//isNaN判断非数字
isNaN("this")  //true  
isNaN(10)     //false
isNaN(NaN)  //true
isNaN(undefined)  //  true
isNaN(null)  //false
var n = "20"
console.log(typeof +n === "number"  && !isNaN(n))  //判断数字