最新的JavaScript标准定义了 7 种数据类型,其中包括 6 种基本数据类型(Number,String,Boolean,Undefined,Null,Symbol(es6))和对象(Object)。本文主要对 6 种基本类型作出总结。
1. Number
Number表示Js中的数字类型。包含了整数和浮点数。其值范围是 -(2的63次方-1) ~ (2的63次方-1) 。除了具体的数值,在JavaScript中还有一些带符号的值:+Infinity,-Infinity和NaN(非数值,Not-a-Number),分别代表正无穷、负无穷和非数值。
除了整数和浮点数,Number中还有一个类型NaN。其表示非数值类型。它有一下特点
1. 涉及到的 任何关于NaN的操作,都会返回NaN
2. NaN不等于自身。
2. String
String表示Js中的字符串类型。字符串可以由单引号(')或双引号(")表示。
String类型有些特殊,因为字符串具有可变的大小,所以显然它不能被直接存储在具有固定大小的变量中。由于效率的原因,我们希望JS只复制对字符串的引用,而不是字符串的内容。但是另一方面,字符串在许多方面都和基本类型的表现相似,而字符串是不可变的这一事实(即没法改变一个字符串值的内容),因此可以将字符串看成行为与基本类型相似的不可变引用类型
3.Boolean
Boolean表示一个逻辑实体,意为真、假。其取值范围为true,false。
4.Undefined
Undefined表示声明了一个变量但未给它赋值。其取值范围只有undefined。
5.Null
Null 类型只有一个值:null,表示空值,表示没有被呈现。
它的数据类型是object类型。
可以通过设置值为 null 清空对象。
6.Symbol
Symbol是es6的新特性,其本质上是一种唯一标识符,可用作对象的唯一属性名,这样其他人就不会改写或覆盖你设置。
其使用方法如下
```
let id = Symbol("id“);
```
Symbol 数据类型的特点是唯一性,即使是用同一个变量生成的值也不相等。
```
let id1 = Symbol('id');
let id2 = Symbol('id');
console.log(id1 == id2); //false
```
Symbol 数据类型的另一特点是隐藏性,for···in,object.keys() 不能访问
```
let id = Symbol("id");
let obj = {
[id]:'symbol'
};
for(let option in obj){
console.log(obj[option]); //空
}
```