JS数据类型
基本数据类型
String
字符串类型,申明时用单引号或双引号引起来,两种引号不可嵌套,不可混用
Number
数值型,有两个特殊的数字
- Infint:无穷大
- NaN:非数值型数字,不与任何类型相等
Boolean
布尔类型,有两个值,真和假
Null
空类型
Underfind
未定义类型,衍生自Null
Object
类型转换(显式)
转换为String
- 使用要转换类型的toString()方法,异地操作,不改变原值,返回新值
- 使用String()函数
两种方法的不同
- 对于Number,Boolean来说,两者并无不同,String()函数在底层依旧调用toString()方法
- 对于Null,Underfind来说,他们没有toString()方法,String()在底层直接把他们转换为“null”和“underfind”两个字符串
转换为Number
- 使用Number()函数
- 使用parseInt()或parseFloat()函数
- 没有toNumber()方法…
两种方法的不同:
- Number()函数:String型只能转换纯数值型,如 “123”,一旦由非数值型字符,就会被转换为NaN,空串会被转换为0,布尔真会被转换为1,布尔假会被转换为0,Null会被转换为0,Underfing会被转换为NaN
- parseInt和parseFloat会找出字符串中的数字进行转换,如123abc会被转换为123,空串,布尔,Null,Underfing会被全部转换为NaN
转为bool
- 字符转布尔:除空串外其他都为true
- 数值转布尔:除0和NaN外其他都为true
- Null和Underfind转布尔:false
- object转布尔:true
进制
- 十六:0x开头
- 八:0开头
- 二:0b开头
与浏览器有关,有的浏览器不支持二进制或八进制
包装类
对基本数据类型的值调用属性和方法时,浏览器会用包装类将其临时转换为对象,再调用对象的属性和方法,有三个包装类,String(),Number(),Boolearn(),他们用来将基本数据类型转换为对象,但我们一般不用,容易出错,如:
var bool = new Boolearn("false");
if(bool){// 会执行,应为bool是false转换成的对象,对象转换为布尔类型都是truealert("·····");
}