`
qinsmoon
  • 浏览: 8132 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

转:JS中typeof与instanceof的区别

    博客分类:
  • js
阅读更多

JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的:

typeof

typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。

它返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回如下几个结果:

number,boolean,string,function,object,undefined。我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错,对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。

网上的一个小例子:

instanceof

instance:实例,例子

a instanceof b?alert("true"):alert("false"); //a是b的实例?真:假

instanceof 用于判断一个变量是否某个对象的实例,如 var a=new Array();alert(a instanceof Array); 会返回 true,同时 alert(a instanceof Object) 也会返回 true;这是因为 Array 是 object 的子类。再如:function test(){};var a=new test();alert(a instanceof test) 会返回

谈到 instanceof 我们要多插入一个问题,就是 function 的 arguments,我们大家也许都认为 arguments 是一个 Array,但如果使用 instaceof 去测试会发现 arguments 不是一个 Array 对象,尽管看起来很像。

另外:

测试 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 会有些区别

alert(typeof(window)) 会得 object

分享到:
评论

相关推荐

    JS中typeof与instanceof的区别

    JS 中 typeof 与 instanceof 的区别 在 JavaScript 中,typeof 和 instanceof 是两个常用的运算符,用来判断一个变量是否为空,或者是什么类型的。但是,这两个运算符之间还是有区别的。 typeof 运算符是一个一元...

    详解JavaScript中typeof与instanceof用法

    在JavaScript中,typeof和instanceof是常用的两种检测数据类型的方式,它们各自有其适用的场景和特点。 ### typeof typeof 是一个一元运算符,它用于返回变量或表达式的类型。当使用typeof运算符时,它通常会返回...

    JS中typeof与instanceof之间的区别总结.docx

    在JavaScript中,`typeof`和`instanceof`是两种常用的类型检查操作符,它们各自有着不同的用法和特点。理解这两者之间的差异对于编写健壮的JavaScript代码至关重要。 `typeof`操作符主要用于检测变量的数据类型。它...

    JS中typeof与instanceof之间的区别总结

    在JavaScript中,`typeof`和`instanceof`是两种常用的类型检查操作符,它们各自有其独特的用法和局限性。 `typeof`操作符是一个一元运算符,它用于确定变量或表达式的类型,并返回一个表示该类型的字符串。`typeof`...

    JS:typeof instanceof constructor prototype区别

    在JavaScript(JS)编程语言中,确定变量或对象的类型是一项基本且重要的任务。这不仅有助于理解代码的行为,还能在调试、数据验证以及实现特定功能时提供帮助。本文将深入探讨四种常用的方法来识别和判断JavaScript...

    关于js typeof 与 instanceof 判断数据类型区别及开发使用.docx

    3. `typeof` 与 `instanceof` 的区别与开发中的使用建议 - `typeof` 更适合用于检测基本类型,尤其是当需要区分`undefined`、`null`、`boolean`、`string`、`number`、`bigint`、`symbol`和`function`时。 - `...

    typeOf:nodejs typeof工厂(instanceof的改进)

    输入类型允许将您的值与代表... // 'object'null instanceof Object //false [有趣的事实] Object.prototype与具有typeof和instanceof的null的结果相同正则表达式使用正则表达式文字,有人会希望typeof返回一个特定的值

    前端大厂最新面试题-typeof_instanceof.docx

    在前端开发中, typeof 和 instanceof 是两种常用的判断数据类型的方法,下面我们将详细介绍这两种方法的使用方法、区别和实现原理。 一、typeof 操作符 typeof 操作符返回一个字符串,表示未经计算的操作数的类型...

    JavaScript类型检测之typeof 和 instanceof 的缺陷与优化

    在javascript中,typeof 和 instanceof 是用来判断数据类型比较通用的两个方法,这篇文章的目的是通过对这两个方法介绍来分析其存在的不足并提出优化方案。 typeof ——————————————————————...

    Javascript typeof与instanceof的区别

    JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。 它返回值是一个字符...

    javascript instanceof 与typeof使用说明

    在JavaScript编程中,typeof和instanceof是两种常用的运算符,它们都可以用来判断变量的数据类型或类的实例。为了深入理解这两个运算符的使用方法和区别,我们需要详细探讨它们各自的特性和适用场景。 首先,typeof...

    谈谈我对JavaScript中typeof和instanceof的深入理解

    除了typeof之外,JavaScript中另一个用于类型判断的关键词是instanceof。instanceof运算符用于检查一个构造函数的prototype属性是否出现在某个实例对象的原型链上。这意味着instanceof可以用来判断一个对象是否是...

    javascript之typeof、instanceof操作符使用探讨

    非常纠结,普遍的说法认为“这两个操作符或许是javascript中最大的设计缺陷,因为几乎不可能从他们那里得到想要的结果” typeof 说明:typeof返回一个表达式的数据类型的字符串,返回结果为js基本的数据类型,包括...

    JS 使用 typeof 获取数据类型

    这篇博客“JS 使用 typeof 获取数据类型”深入探讨了如何利用`typeof`来识别和处理不同类型的JavaScript数据。 首先,`typeof`返回的是一个字符串,这个字符串描述了变量的类型。它适用于原始数据类型(如`...

    关于javascript中的typeof和instanceof介绍

    在JavaScript编程语言中,typeof和instanceof是两个用于检测数据类型的操作符。 typeof可以用来检测给定变量的基本数据类型,而instanceof用于检测对象是否属于某个特定的引用类型,或者更准确地说,是否是在某个类...

Global site tag (gtag.js) - Google Analytics