JS之数据类型
基本数据类型:Undefined、Null、Boolean、String、Number、Symbol
复杂数据类型:Object
1、Undefined类型
只有一个值即undefined。对未声明的变量和声明过但未初始化的变量使用typeof都会返回undefined。
2、Null类型
只有一个值即null。null值表示一个空对象指针,所以用typeof操作符检测null值时会返回object。对于声明的变量将来用于保存一个对象,则可将其显示的设置为null。
3、Boolean类型
两个字面值:true、false。
能转换为false的值:false、' '、0、-0、NaN、null、undefined。
注意:空数组和空对象对应的布尔值都是 true。
4、Number类型
表示整数和浮点数
整数:十进制、八进制(严格模式下无效,抛出错误)、十六进制,进行算术时,所有的字面量都被转换成十进制。
浮点数:数值中必须包含一个小数点,且小数点后面至少有一位数字。永远不要测试某个特定的浮点数值!
ECMAScript能够表示的最小数值保存在Number.MIN_VALUE,最大数值保存在Number.MAX_VALUE。超出这个范围则自动转换成特殊的Infinity值,且该值不是能够参与计算的值。可以用isFinite()函数确定一个数值是否为有穷的。
NaN:Not a Number,是一个特殊的数值。任何涉及NaN的操作都会返回NaN,NaN与任何值都不相等,包括NaN本身。isNaN()函数确定参数是否"不是数值"。
数值转换:Number()、parseInt()、parseFloat()。
5、String类型
字符串,length属性取得其长度。字符串一旦创建,其值就不能改变。
字符串转换:toString()(null和undefined值没有这个方法),若传入参数,表示以进制转化。String()函数在不确定是否为null和undefined。
6、Symbol类型
表示一个独一无二的值。是一个函数而非对象。可以在指定的时候加一个参数,加参数只是一个对值的描述。不能与其他类型的值进行运算,可显示的转化为字符串、布尔值,不能转化为数值。
7、Object类型
一组数据和功能的集合。Object是所有对象的基础,所有对象都有以下基本的属性和方法:
constructor:保存着用于创建当前对象的函数。
hasOwnProperty(propertyName):检查给定的propertyName是否存在于当前对象(而非实例的原型中)。
isPrototypeOf(object):检查object是否为当前对象的原型。
propertyIsEnumerable(propertyName):检查propertyName是否能够使用for—in语句。
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
toString():返回对象的字符串表示。
valueOf():返回对象的字符串、数值或布尔值表示。
对象转换成基本类型:首先会调用 valueOf ,然后调用 toString。