原始值:在JS中除Object以外的所有类型都是不可变的(值本身无法被改变),这些类型的值为“原始值”。
6种原始类型:Boolean、Null、undefined、Number、String、Symbol(在ES6中定义)
引用类型:Object,Object包含function、Array、Date等。
1. Boolean(布尔类型)
只有两个取值true、false。但是JS中“&&”,“||”操作的运算结果并不一定是布尔型,即运算结果并不会强制转换成布尔类型。常使用“&&”条件赋值,用“||”默认值。
2. NULL
只有一个值null。变量或者属性赋值为null来表示空值。
3. undefined
只有一个值undefined,表示没有值。产生undefined的情况如下:
(1)显式赋值为undefined)
(2)变量声明没有赋值
(3)void(expression)
(4)函数的参数没有传入
(5)获得对象不存在的属性
(6)函数没有返回值
4. Number
在JS里,数字类型能够代表的范围是 -(2的63次方-1) ~ (2的63次方-1) 。除了具体的数值,在JavaScript中还有一些带符号的值:+Infinity,-Infinity和NaN(非数值,Not-a-Number),分别代表正无穷、负无穷和非数值。
10/+0 // 表示+Infinity
10/-0 // 表示-Infinity
5. String
JS字符串类型用于表示文本数据。在字符串中的每个元素占据了字符串的位置。第一个元素的索引为0,下一个是索引1,依此类推。字符串的长度是它的元素的数量。
在JavaScript中的字符串需要使用单引号'**'或双引号"**"括起来,表示该值是一个字符串。
6. 符号类型
符号(Symbols)是ES6新定义的。符号类型是唯一的并且是不可修改的。
7. Object
对象是一组属性的集合。Javascript可以通过对象字面量创建对象,也可以使用构造函数创建对象。
8. typeof操作符
‘undefined’——未定义
‘boolean’——布尔值
‘string’——字符串
‘number’——数字值
‘object’——对象或者null
‘function’——函数
*** typeof null === object (按照ecmascript规范的定义,Null是一个数据类型,function属于Object类型)
==:类型不同时,类型进行转换比较值。类型相同时,和===等同。
===:类型不同,返回false。