原始类型
Undefined,Null,Boolean,Number,String(没有int,object类型)
ES6新增了Symbol和BigInt.
- Symbol代表独一无二的值,最大的用法是为对象定义唯一的属性名
- BigInt可表示任意大小的整数,指安全存储、操作大整数。
数据处理
parseInt(5.4)只保留整数部分,有基模式
解析一个字符串,并返回一个整数。parseInt相比Number,就没那么严格了,parseInt数逐个解析字符,遇
到不能转换的字符就停下来。
parseInt(string,radix)
string必需,表示要被解析的字符串。radix可选,表示要解析的数字的基数。该值介于2~36之间。
如果省略该参数或其值为’0’,则数字将以10为基础来解析。如果它以”0x”或”0X””开头,将以16为基
数。
如果该参数小于2或者大于36,则’parseInt()/将返回NaN’。parseFloat()把值转换成浮点数,没有基模式
Number()把给定的值转换成数字(可以是整数或浮点数),Number()的强制类型转换与parseInt()和parseFloat()
方法的处理方式相似,只是它转换的是整个值,而不是部分值。Math.floor(4.33)向下取整
Math.ceil(6.7)向上取整
Math.round(6.19)四舍五入
Math.abs(-1)绝对值
String()把给定的值转换成字符串
toFixed(2)四舍五入
null&undefined
- 这两个基本数据类型分别都只有一个值,就是undefined和null。
- undefined代表的含义是未定义,null代表的含义是空对象。一般变量声明了但还没有定义的时候会返回
undefined,null主要用于赋值给一些可能会返回对象的变量,作为初始化。 - undefined在js中不是一个保留字,这意味着我们可以使用undefined来作为一个变量名,这样的做法是非常危
险的,它会影响我们对undefined值的判断。但是我们可以通过一些方法获得安全的undefined值,比如说
void(). - 当我们对两种类型使用typeof进行判断的时候,Nul类型化会返回”object’”,这是一个历史遗留的问题。当我们使用双等号对两种类型的值进行比较时会返回true,使用三个等号时会返回false。
typeof null为”Object”
在第一版JS中,变量的值被设计保存在一个32位内存单元中。该单元包含一个1或3位的类型标标志,和实际数据
值。类型标志存储在单元的最后。包括以下2几种情况
1.000:object,数据为对象的引用
2.1:int,数据为31位的有符号整型
3.010:double,数据为一个双精度浮点数的引用
4.100:string,数据为一个字符串的引用
5.110:boolean,数据为布尔类型的值
特殊情况:
·undefined负的2的30次方(超出当时整型取值范围的一个数)
·null空指针
null的存储单元最后三位(即标志位)和object-一样,所以被误判为Object
引用类型
1.Object
2.Date
3.Array
4.RegExp