一、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)) //判断数字