【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
JS中常用来判定变量类型的两个函数为 typeof 和 instanceof
typeof 的结果有
undefined, number, boolean, string, function,
object[
null,
Array,
String,
Date.....]
要注意的地方是 typeof null的结果为object, null在js中是一种特殊的对象,而非等同于 undefined
null 和 undefined 并不是等价的
var tmp = null; // 虽然tmp是null,但我也定义了
var undef; //声明但没定义
alert(typeof tmp); // object
alert(typeof undef); // undefined
所以判断一个值是不是null的时候直接用 tmp == null即可,切勿使用typeof,null是一种特殊的对象
// 标量 //
typeof 123; // number
typeof 'string'; // string
typeof true; // boolean
// 函数 //
typeof function(){}; //function
// 对象 //
typeof new String('string'); // object
typeof null; //objecttype
而判断一个变量是否被定义则可
var temp;
typeof temp === "undefined"; //true 类型名
temp == undefined; //true 所有未定义的变量其实都是undefined
instanceof 可以判断非标量的类型
1 instanceof Number; //false
new Number(1) instanceof Number; //true
'string' instanceof String; // false
new String('string') instanceof String; // true
true instanceof Boolean; //false
new Boolean(true) instanceof Boolean; //true
注意 js 中分为引用类型和对象实例,new 一个引用类型构造函数可返回此类型的一个实例,类型可以自己创建,也可以使用我们平时常用的 Object Array Date 等,同事要注意标量并不是但可以转换为某类型的实例
来源:oschina
链接:https://my.oschina.net/u/252076/blog/529901