1.typeof 操作符:
typeof
是一元操作符,用于返回一个表示操作数类型的字符串。它返回的结果包括:"undefined"、"boolean"、"number"、"string"、"object"、"function" 和 "symbol"。
typeof variable;
2.nstanceof 操作符:
instanceof
操作符用于检查对象是否是某个构造函数的实例。
object instanceof constructor;
例如:
var arr = [];
console.log(arr instanceof Array); // true
注意:instanceof
只能用于对象类型的判断,对于原始数据类型(如字符串、数字等)不适用。
3.Object.prototype.toString.call() 方法:
使用 Object.prototype.toString
方法可以得到更详细的数据类型信息,这是因为这个方法对所有对象都有效。
Object.prototype.toString.call(variable);
例如:
var arr = [];
console.log(Object.prototype.toString.call(arr)); // [object Array]
这种方法返回的结果包含 "[object 类型]" 的格式,可以通过正则表达式或字符串截取来获取具体的类型。
4.Array.isArray() 方法:
用于检查一个对象是否是数组。
用于检查一个对象是否是数组。
例如:
var arr = [];
console.log(Array.isArray(arr)); // true
这是一个专门用于数组判断的方法。
5.null 和 undefined 如何判断
如果使用 typeof 判断 null 会返回 object 而 undefined 会返回 undefined
所以具体判断时,我们需要判断三个地方。
具体如下:
let aa = undefined
let bb= null
let cc = 0
console.log(typeof(aa),typeof(bb),typeof(cc))
//undefined object number
if(!aa){
console.log('!aa')
}
if(!bb){
console.log('!bb')
}
if(!cc){
console.log('!cc')
}
//!aa
//!bb
//!cc
if(!aa && typeof(aa) === 'undefined'){
console.log('aa is undefined')
}
if(!bb && typeof(bb) !== 'undefined'){
console.log('bb is null')
}
if(!cc && typeof(cc) !== 'undefined'){
console.log('cc is null')
}
//aa is undefined
//bb is null
//cc is null
if(!aa && typeof(aa) === 'undefined' && aa !== 0){
console.log('aa is undefined')
}
if(!bb && typeof(bb) !== 'undefined' && bb !== 0){
console.log('bb is null')
}
if(!cc && typeof(cc) !== 'undefined' && cc === 0){
console.log('cc is 0')
}
//aa is undefined
//bb is null
//cc is 0