1.typeof
typeof运算符的返回类型为字符串,值包括如下几种:
1. 'undefined' --未定义的变量或值
2. 'boolean' --布尔类型的变量或值
3. 'string' --字符串类型的变量或值
4. 'number' --数字类型的变量或值(包括整数和浮点数)
5. 'object' --对象类型的变量或值,或者null(数组也是对象的一种)
6. 'function' --函数类型的变量或值 (typeof Symbol 值为 'function' )
7. 'symbol' --Symbol (typeof Symbol() 值为 'symbol' )
typeof 123 // ‘number’
typeof 123 === ‘number’; //true
2.instanceof
用于判断一个引用类型是否属于某构造函数;
instanceof 能够判断出 [ ] 是Array的实例,但它认为 [ ] 也是Object的实例
1. [] instanceof Array --true
2. [] instanceof Object --true
3. '111' instanceof String --false
4. ({}) instanceof Object --true
5. {} instanceof Object --报错
6. Symbol instanceof Symbol --false
7. Symbol() instanceof Symbol --false
var simpleStr = "This is a simple string";
var myString = new String();
var newStr = new String("String created with constructor");
var myDate = new Date();
var myObj = {};
var myNonObj = Object.create(null);
simpleStr instanceof String; // 返回 false, 检查原型链会找到 undefined
myString instanceof String; // 返回 true
newStr instanceof String; // 返回 true
myString instanceof Object; // 返回 true
myObj instanceof Object; // 返回 true, 尽管原型没有定义
({}) instanceof Object; // 返回 true, 同上
myNonObj instanceof Object; // 返回 false, 一种创建非 Object 实例的对象的方法
myString instanceof Date; //返回 false
myDate instanceof Date; // 返回 true
myDate instanceof Object; // 返回 true
myDate instanceof String;