JS数据类型有:
基本数据类型Number、String、Boolean、Null、undefined、symbol、
引用数据类型对象(Object)、数组(Array)、函数(Function)
Symbol 是 ES6 引入了一种新的原始数据类型,表示独一无二的值。
1.number
NaN 是 Number 中的一种,非Number 。
js 规定的NaN与任何值都不相等,包括NaN本身。
NaN与任何类型值操作都为NAN。
isNaN检测一个变量是非数值。
2.String
所有用单引号、双引号、反引号包起来的都是字符串。
其他类型转字符串:
如:Number.toString()
3.Boolean
只有两个字面值;true和false,这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0
其他类型转布尔值:
只有0、NaN、''、null、undefined五个值转换为false,其余都转换为true(而且没有任何的特殊情况)
4.Null
Null类型只有一个值,那就是null。
typeof 运算符对null进行运算时结果是object。
5.Undefined
Undefined类型只有一个特殊的值——undefined。undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。
典型用法:
(1)变量被声明了,但没有赋值时,就等于undefined。
(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。
6.symbol
Symbol 本质上是一种唯一标识符。表示独一无二的值。
1、symbol函数前不能使用new关键字,否则会报错,这是因为symbol是原始数据类型,而不是对象,所以不能添加属性。
2、 symbol可以接受一个字符串作为参数,表示对Symbol的描述,主要是在控制台显示时容易区分。
3、 这个参数可以不加,如果不加在控制台输出就是两个Symbol()不利于区分,加上参数就是为了加以区分。
4、 Symbol不能与其他值进行运算,否则会报错。
5、Symbol是唯一的与谁都不相等。
6、Symbol 可以显示的转为字符串,布尔值,但是不能转为数字,转为数字会报错
7、由于每一个Symbol都不相同,那么可以作为标识符作为对象的属性名,保证不会出现同名的的属性。
8、Symbol值作为对象的属性名时不能使用点运算符,同理,在对象的内部使用Symbol值时也必须放在方括号中。