原始(Primitive)类型(6种)
boolean、null、undefined、number、string、symbol
其中symbol为es6新增的数据类型
原始类型与对象类型(Object)的区别
原始类型存储的是值,对象类型存储的是地址(指针)
例如:
var a = 123;
var b = {'b':123};
console.log(a)
console.log(b)
类型转换
JS 中类型转换只有三种情况:转换为布尔值、转换为数字、转换为字符串
附图:
总结:
转Boolean:在条件判断时,除了 undefined, null, false, NaN, ‘’, 0, -0,其他所有值都转为 true,包括所有对象。
对象转原始类型:对象在转换类型的时候,会调用内置的 ToPrimitive函数。
算法逻辑为:如果已经是原始类型了,那就不需要转换了;调用 x.valueOf(),如果转换为基础类型,就返回转换的值;调用 x.toString(),如果转换为基础类型,就返回转换的值;如果都没有返回原始类型,就会报错。