typeof操作符
undefined, boolean, string, number, object, function
1、undefined
使用var/let声明变量之后,未进行初始化(赋值),这个变量就是undefined
未定义和未声明
使用typeof操作符都返回undefined,对未定义的变量只可以进行一项操作,使用typeof操作符
2、null为一个空指针,所以使用typeof操作符时返回的是object
3、boolean有两个值
而ECMAScript中所有类型的值都可以转换为布尔值
①任何非空字符串都是true,''空字符串为false
②任何非零数字值(包括无穷大infinity), 0 和NaN为false
③任何对象都为true, null为false
④undefined为false
4、number
①浮点数需要的内存空间是需要保存整数的两倍
②数值范围,最大值存储在Number.MAX_VALUE中,超过这个值,则显示为Infinity;最小值存储在Number.MIN_VALUE中,小于这个值则显示为-Infinity,判断是否在可显示数值范围内isFinite()
③NaN非数值,这个值用于表示,一个本来要返回数值的操作数,未返回数值的情况,对NaN的操作都会返回NaN,NaN与任何值都不相等,包括NaN本身。ECMAScript定义了isNaN()
④数值转换,有3个函数可以把非数值转换为数值Number()、parseInt()、parseFloat(),其中第一个函数可以作用域任何类型数据,而其余两个则是专门用于把字符串转换成数值的
Nuber 一元加操作符与Number函数作用一样
针对布尔值true转换为1,false转换为0
如果是null,转换为0
undefined,转换为NaN
字符串,字符串中只能是数字或者是十六进制,只包含一个小数点. 空字符串转换为0
对象,先调用对象的valueOf
parseInt针对字符串的转换方法,在转换时,更多的是看其是否符合数值模式
会忽略字符串前面的空格,直至找到第一个非空格字符,如果第一个非空格字符不是数字字符或者负号-,则返回NaN。用parseInt转换空字符串时会返回NaN
string
字符串是不可变的
toString和String,null和undefined不可调用toString,因此在不知道要转换的值是否为null和undefined的时候,可以使用String
Object类型,ECMAScript中的对象就是一组数据和功能的集合
对象的实例的属性和方法
1、constructor:保存着实例的构造函数
2、hasOwnProperty(): 用于检查给定的属性在当前实例中(而不是实例的原型中)是否存在
3、isPrototype():用于检查被传入的对象是否是当前对象的原型
4、toLocaleString():返回对象的字符串表示
5、toString:返回对象的字符串表示
6、valueOf:返回对象的字符串、数值或者布尔值表示