6种数据类型
基本数据类型
String 字符串
Number 数字类型
Boolean 布尔值
Null 空值 表示非对象
Undefined 未定义的值,表示未赋值的初始化值
引用数据类型
Object 泛指对象 包括狭义的对象Object、数组Array和函数Function。
检测数据类型
typeof 运算符可以检测数据的基本类型。
1、 对于数字类型的值,typeof会返回number,注意:NaN本身也是一个数字类型,因为它在JavaScript中代表的是特殊非数字值。
在JavaScript中,特殊的数字类型还有几种:
Infinity 表示无穷大特殊值
NaN 特殊的非数字值
Number.MAX_VALUE 可表示的最大数字
Number.MIN_VALUE 可表示的最小数字(与零最接近)
Number.NaN 特殊的非数字值
Number.POSITIVE_INFINITY 表示正无穷大的特殊值
Number.NEGATIVE_INFINITY 表 示负无穷大的特殊值
console.log(typeof 123); //'number'
console.log(typeof NaN); //'number'
console.log(typeof(Number.MIN_VALUE)); // number
console.log(typeof(Infinity)); // number
2、 对于字符串类型的值,typeof会返回string。
console.log(typeof '123'); //'string'
3、 对于布尔类型的值,typeof会返回boolean。
console.log(typeof(true)); //'boolean'
4、 对于对象,数组,null而言,typeof会返回object
console.log(typeof []); //'object'
console.log(typeof {}); //'object'
var obj = new String();
console.log(typeof obj); //'object'
console.log(typeof window); // object
console.log(typeof document); // object
console.log(typeof null); //'object'
5、 对于函数类型而言,typeof返回function
var fn = function(){};
console.log(typeof fn); //'function'
console.log(typeof(class c{})); //'function'
console.log(typeof Array); //'function'
console.log(typeof eval); // function
console.log(typeof Date); // function
6、 如果运算数没有定义(未定义或者未初始化),将会返回undefined。
console.log(typeof a); //'undefined'
console.log(typeof undefined); // undefined
总结
1、undefined,null,空字符串(‘’),0,NaN都等于false,都可以通过!来取反。 (if语句)
2、未初始化的变量和未声明的变量的typeof操作都返回undefined。
3、NaN ①任何涉及NaN的操作都会返回NaN。②NaN对任何值都不相等,包括自己NaN本身。
console.log(typeof NaN == NaN); //false
JS内置了isNaN()函数,来确定数值是不是NaN类型。
isNaN() 函数用于检查其参数是否是非数字值。
如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。
console.log(isNaN(0));//false
console.log(isNaN("Hello"));//true