js中的变量类型?
在js中,ES5规定的变量类型有6种数据类型,分别是基本类型 string、number、boolean、undefined、null和引用类型object,其中引用类型又分为 Array、Object、Function、Date、RegExp,判断基本类型的方法通常是 typeof,判断引用类型通常使用constructor、instanceof、Object.prototype.toString.call()
判断变量类型的具体写法
typeof用法:
var a = 1;
console.log(typeof a) //number
var b = "hello";
console.log(typeof b) //string
var c = [];
console.log(typeof c) //object
var d = {};
console.log(typeof d) //object
instanceof用法
var A = [];
console.log(A instanceof Array) //true
var B = {};
console.log(B instanceof Object) //true
var C = /a/;
console.log(C instanceof RegExp) //true
constructor用法
var aa = [];
console.log(aa.constructor == Array); //true
var bb = {};
console.log(bb.constructor == Object); //true
var cc = 1;
console.log(cc.constructor == Number); //true
var dd = "hello";
console.log(dd);
console.log(dd.constructor == String); //true
Object.prototype.toString.call()用法
var a = [];
Object.prototype.toString.call(a) === '[object Array]'; //true
var b = {};
Object.prototype.toString.call(b) === '[object Object]'; //true
var c = 'hello';
Object.prototype.toString.call(c) === '[object String]'; //true
var d = 1;
Object.prototype.toString.call(d) === '[object Number]'; //true
js中几个特殊变量判断
null和undefined的区别?
null代表空指针,也可以称为空对象,undefined表示变量初始化后未赋值,常常用来表示变量初始化,typeof null 返回的是“object”,
null和undefined不严格相等
null == undefined // true
函数类型可以直接使用typeof判断
var a = function(){};
typeof a === 'function';