1.null
表示空对象指针,比如作为原型链的终点、想要保存对象的变量还没有正在的保存对象的时候
2.undefined 表示缺少值,应该有一个值但没有被定义,比如变量声明但没有赋值、调用函数时没有提供该有的参数、函数没有返回值

注意:
null==undefined返回true

3.Number
3.1 String转为Number类型的方法:
1)parseInt(str)
2)parseFloat(str)
3)Number(str)
如果第一个值不是±符号或者数字就返回NaN,是的话一直截取到后面第一个不是数字的值位置返回,但是parseInt(string,radix)还有其他的参数,radix(2-36)表示使用的进制,如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN,如果省略该参数或其值为 0,则数字将以十进制来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数
3.2 Boolean转为Number:true为1,false为0
3.3 其他:null为0,undefined为NaN

4.String
转为String的方法:
+“”
String()
.toString()

5.Boolean
转为Boolean:
Boolean()
规则:除了false、0、NaN、null、undefined、“”,其他的都为true

6)Symbol

注意:作为对象属性的标识符,每个Symbol()返回的symbol值是唯一的
不能使用new Symbol() 会报错

用途:
作为对象属性的key值(属性名),用for…in…和Object.keys不能遍历出这个属性值,使用JSON.stringfy()把对象转换为字符串的时候也不可以得到这个属性值,但可以通过Object.getOwnPerportySymbols()(只获取symbol的属性)以及Reflect.Ownkeys()(获取整个对象所有属性)获得封装类的内部属性