JS中typeof与instanceof的区别
JS 中 typeof 与 instanceof 的区别 在 JavaScript 中,typeof 和 instanceof 是两个常用的运算符,用来判断一个变量是否为空,或者是什么类型的。但是,这两个运算符之间还是有区别的。 typeof 运算符是一个一元运算符,放在一个运算数之前,运算数可以是任意类型。它返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回以下几个结果:number, boolean, string, function, object, undefined。 使用 typeof 可以获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错。对于 Array, Null 等特殊对象,typeof 一律返回 object,这正是 typeof 的局限性。 instanceof 运算符用于判断一个变量是否某个对象的实例,例如 var a=new Array();alert(a instanceof Array); 会返回 true,同时 alert(a instanceof Object) 也会返回 true;这是因为 Array 是 object 的子类。 需要注意的是,function 的 arguments 不是一个 Array 对象,尽管看起来很像。例如:function test(){};var a=new test();alert(a instanceof test) 会返回 true。 此外,测试 var a=new Array();if (a instanceof Object) alert('Y');else alert('N');得'Y’但 if (window instanceof Object) alert('Y');else alert('N');得'N'。这里的 instanceof 测试的 object 是指 js 语法中的 object,不是指 dom 模型对象。 使用 typeof 和 instanceof 还有其他一些区别,例如 alert(typeof(window)) 会得 object,但 window 不是一个 object 类型的对象,而是一个 Window 对象。 typeof 和 instanceof 都是 JavaScript 中的基本运算符,但它们的用途和返回值不同。typeof 主要用于判断变量的类型,而 instanceof 用于判断变量是否某个对象的实例。理解这两个运算符的区别对于 JavaScript 开发者来说非常重要。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助