目录
javascript数据类型
1.基本数据类型:
字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol(ES6)。
2.引用数据类型:
对象(Object)、数组(Array)、函数(Function)
3.基本包装类型:
Boolean、Number、String
typeof 检测变量的数据类型
返回值有六种:
undefined、boolean 、string 、number、object(null、数组、对象)、function
1.undefined
返回undefined的四种场景
- 声明的变量没有指定值
- 试图访问的对象属性没有被定义,并且不存在原型链中
- 未被声明的变量
- 函数没有返回值时,默认返回undefined
若想确保只在一种情况下typeof才返回undefined:当变量未被声明时。可以显示的初始化变量,可将变量值赋值给null。
2.object
不能区分对象、数组、正则、NULL对它们操作都返回'object'
instanceof
1.测试一个对象是否在其原型链原型构造函数的属性
语法:object instanceof constructor
2.通过instance识别对象,检查一个对象是否是一个另一个对象(或构造函数)的实例
语法:object1 instanceof object2
null&undefined
null:表示一个空对象指针,显示的指出对象属性不包含值,可以将null理解为对象的占位符。
使用场景:
- 用来初始化一个变量,这个变量有可能赋值给一个对象
- 用来表明引用属性拥有一个空值
- 用来和一个已经初始化的变量比较,该变量可以是对象也可以不是
不应当使用null的场景:
- 不要用null来检测是否传入了某个参数
- 不要用null来检测一个未初始化的变量
typeOf(null)的返回值为object,若想验证某个值是否为null,应该使用操作符“===”,“==”无法区分null和undefined
null&undefined 的区别
undefined和null均为只有一个值的数据类型
不要将一个值设为undefined,例如 a = undefinded。如果想指定一个属性或变量的值是不可用的,应该使用null。