数据类型(共7种):
1)Undefined
Undefined表示未定义,它只有一个值,undefined,任何变量在赋值之前类型都是Undefined,值都是undefined,一般我们可以用全局变量undefined(即名为undefined的这个变量)来表达这个值,或者用void运算来把任意一个表达式变成undefined
2)Null
Null类型,也只有一个值就是null,语句表示空值,与undefined不同,null是js的关键是而undefiend不是,所以在任何代码中,可以用null关键字获取null值。在表意上也有一定的差别,null表示定义了,但是为空,所以在实际编程中,不会把变量赋值为undefiend,这样可以保证所有值为undefiend的变量,都是从未赋值j状态
3)Boolean
Boolean类型有两个值,true和false,表示逻辑意义上的真和假,同样有关键字true和false来表示两个值。
4)Number
Number类型表示“数字”,大致对应数学中的有理数,在计算机中有一定的精度,Number 类型有 18437736874454810627(即 2^64-2^53+3) 个值,其符合IEEE 754-2008 规定的双精度浮点数规则,在js中还有三个比较特殊的值:
1)NaN,占用了 9007199254740990,这原本是符合 IEEE 规则的数字;2)Infinity,无穷大;
3)-Infinity,负无穷大
需要注意的是:在js中,有+0和-0之分,对于加法没有影响,但是除法的场合需要区别:
x/-0 = -Infinity
x/+0 = Infinity
5)String
String用于表示文本数据,也有长度限制,最大为2^53 - 1,但这个长度并不是我们所理解的字符数,因为string的意义并非是字符串,而是字符串的 UTF16 编码,我们字符串的操作 charAt、charCodeAt、length 等方法针对的都是 UTF16 编码。所以,字符串的最大长度,实际上是受字符串的编码长度影响的。
6)Object
7)Symbol
Symbol 是 ES6 中引入的新类型,它是一切非字符串的对象 key 的集合,在 ES6 规范中,整个对象系统被用 Symbol 重塑,
其中前五个为基本类型