数据类型可以分为基本数据类型和引用数据类型,其中基本数据类型包括Undefined、Null、Boolean、Number、String 5种,在ES6中新增了一种新的基本数据类型Symbol;引用数据类型含有Object、Function、Array、Date等类型
Undefined类型
Undefined类型只有一个唯一的字面值undefined,表示的是一个变量不存在。
1使用只声明而未初始化的变量时,会返回“undefined”。
2获取一个对象的某个不存在的属性(自身属性和原型链继承属性)时,会返回“undefined”。
3函数没有明确的返回值时,却在其他地方使用了返回值,会返回“undefined”。
4函数定义时使用了多个形式参数(后文简称为形参),而在调用时传递的参数的数量少于形参数量,那么未匹配上的参数就为“undefined”。
Null类型
Null类型只有一个唯一的字面值null,表示一个空指针对象
一般情况下,如果声明的变量是为了以后保存某个值,则应该在声明时就将其赋值为“null”。
JavaScript在获取DOM元素时,如果没有获取到指定的元素对象,就会返回“null”。
在使用正则表达式进行捕获时,如果没有捕获结果,就会返回“null”。
Boolean类型
Boolean类型(又称布尔类型)的字面值只有两个,分别是true和false,它们是区分大小写的,其他值(如True和False)并不是Boolean类型的值。
Boolean类型使用最多的场景就是用于if语句判断。
String类型转换为Boolean类型
空字符串""或者''都会转换为false。
任何非空字符串都会转换为true,包括只有空格的字符串" "。
Number类型转换为Boolean类型
0和NaN会转换为false。
除了0和NaN以外,都会转换为true,包括表示无穷大和无穷小的Infinity和-Infinity。
Object类型转换为Boolean类型
当object为null时,会转换为false。
如果object不为null,则都会转换为true,包括空对象{}。
Function类型转换为Boolean类型
任何Function类型的值都会转换为true。
Null类型转换为Boolean类型
Null类型只有一个null值,会转换为false。
Undefined类型转换为Boolean类型
Undefined类型只有一个undefined值,会转换为false。
笔记内容来自于书籍 JavaScrint 重难点实例精讲