做外贸建网站,公司建网站多少钱,男人和女人晚上做污污的视频大网站,自建网站步骤很多人看到标题就会想到使用typeof运算符#xff0c;但是实际上有些它判断不了
var a [1,2,3]
console.log(typeof a) // object//总结#xff1a; typeof运算符并不能直接判断一个变量是对象还是数组#xff0c;
//实际上#xff0c;typeof运算符在判断基本…很多人看到标题就会想到使用typeof运算符但是实际上有些它判断不了
var a [1,2,3]
console.log(typeof a) // object//总结 typeof运算符并不能直接判断一个变量是对象还是数组
//实际上typeof运算符在判断基本数据类型可以但是引用数据类型就吃力了
判断一个变量是否为数组和对象的方法
instanceof运算符
//基本用法
var a [1,2,3]
console.log(a instanceof Array); // true
console.log(a instanceof Object); // falsevar b {name:老王,age:18,
}
console.log(a instanceof Array); // false
console.log(a instanceof Object); // true//封装方法
function getDataType(o) {if(o instanceof Array){return Array}else if(o instanceof Object){return Object}else{return param is not object type}
}
判断构造函数
var a [1,2,3]
console.log(a.__proto__.constructor Array) //true
console.log(a.__proto__.constructor Object) //false!--分装方法--
function getDataType(o) {//获取构造函数var constructor o.__proto__.constructor || o.constructorif(constructor Array){return Array}else if(constructor Object){return Object}else{return param is not object type}
}!--缺点--早期的ie浏览器不支持__proto__ 这个属性
toString()函数
var a [1, 2, 3];
var b {name: kingx};console.log(Object.prototype.toString.call(a)); // [object Array]
console.log(Object.prototype.toString.call(b)); // [object Object]!--其实任何类型的变量在调用toString函数时候都会返回不同的结果--
Object.prototype.toString.call(1); // [object Number]
Object.prototype.toString.call(kingx); // [object String]
var c;
Object.prototype.toString.call(c); // [object Undefined]// 判断变量是数组还是对象
function getDataType(o) {var result Object.prototype.toString.call(o);if (result [object Array]) {return Array;} else if (result [object Object]) {return Object;} else {return param is no object type;}
}
Array.isArray()函数
在JavaScript 1.8.5 版本中增加的静态函数注意只能判断出是否为数组并不能确定是否为对象
// 下面的函数调用都返回“true”
Array.isArray([]);
Array.isArray([1]);
Array.isArray(new Array());
// 鲜为人知的事实其实 Array.prototype 也是一个数组。
Array.isArray(Array.prototype);// 下面的函数调用都返回“false”
Array.isArray();
Array.isArray({});
Array.isArray(null);
Array.isArray(undefined);
Array.isArray(17);
Array.isArray(Array);
Array.isArray(true);