一:typeof判断数据类型
var demo = "你好啊";
console.log(demo - 12); // NaN
// 1. typeof:获取(判断)变量的数据类型
// 语法结构:typeof 变量名
console.log(typeof demo); // string
var number = 1233;
console.log(typeof number); // number
var bl = true;
console.log(typeof bl); // boolean
var un = undefined;
console.log(typeof un); //undefined
var time = null;
console.log(typeof time); // object
// 2. prompt 得到的数据是 string
var age = prompt("请输入您的年龄");
console.log(typeof age); // string
二:使用instanceof返回值判断是对象还是数组
var arr1 = [1,2,3,4];
var arr2 = [];
var obj = {};
console.log(arr1 instanceof Array); //true
console.log(arr2 instanceof Array); //true
console.log(obj instanceof Array); //false
三:使用对象的constructor属性
var arr1 = [1,2,3,4];
var arr2 = [];
var obj = {};
console.log(arr1.constructor); //Array
console.log(arr2.constructor); //Array
console.log(obj.constructor); //Object
四:使用Object.prototype.toString.call判断
console.log(Object.prototype.toString.call("123")); //string
console.log(Object.prototype.toString.call(123)); //number
console.log(Object.prototype.toString.call()); //undefined
console.log(Object.prototype.toString.call([1,2,3])); //Array
console.log(Object.prototype.toString.call({})); //Object
五:使用ES5中的Array.isArray判断
var arr1 = [1,2,3,4];
var arr2 = [];
var obj = {};
console.log(Array.isArray(arr1)); //true
console.log(Array.isArray(arr2)); //true
console.log(Array.isArray(obj)); //false