javascript中的instanceof运算符

简介:

instanceof运算符希望左操作数是一个对象,右操作数表示对象的类;如果左侧的对象是右侧类的实例,则返回true,否则返回false。由于js中对象的类是通过初始化它们的构造函数来定义的,因此instanceof的右操作数应当是一个函数。比如:

var d = new Date();
d instanceof Date; //true
d instanceof Object; //true
d instanceof Number; //false

所有对象都是Object的实例,intanceof也会包含对父类的检查。如果instanceof左操作数不是对象的话,instanceof返回false;若右操作数不是函数,则抛出类型错误异常。
为了计算o instanceof f,js首先计算f.prototype,然后在原型链中查找o,如果找到,则o是f(或f父类)的一个实例,表达式返回true,否则返回false。

相关文章
|
1月前
|
JavaScript 前端开发 开发者
混淆赋值运算符(=)和相等比较运算符(==, ===)(js的问题)
混淆赋值运算符(=)和相等比较运算符(==, ===)(js的问题)
|
4月前
|
JavaScript 前端开发 Java
JavaScript基础语法(运算符)
JavaScript基础语法(运算符)
32 0
|
10天前
|
存储 JavaScript 前端开发
【JavaScript技术专栏】JavaScript基础入门:变量、数据类型与运算符
【4月更文挑战第30天】本文介绍了JavaScript的基础知识,包括变量(var、let、const)、数据类型(Number、String、Boolean、Undefined、Null及Object、Array)和运算符(算术、赋值、比较、逻辑)。通过实例展示了如何声明变量、操作数据类型以及使用运算符执行数学和逻辑运算。了解这些基础知识对初学者至关重要,是进阶学习JavaScript的关键。
|
2天前
|
JavaScript 前端开发
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
JS中运算符的算术、赋值、+、比较(不同类型之间比较)、逻辑
5 1
|
4天前
|
JavaScript
js的一些运算符规则
js的一些运算符规则
10 1
|
4天前
|
JavaScript
js的比较运算符
js的比较运算符
12 1
|
4天前
|
JavaScript 前端开发
js的运算符
js的运算符
12 2
|
12天前
|
JavaScript 前端开发 数据安全/隐私保护
【专栏】JavaScript中的`==`和`===`运算符有重要区别,本文将从三个部分详细探讨
【4月更文挑战第29天】JavaScript中的`==`和`===`运算符有重要区别。`==`进行类型转换后比较,而`===`不转换类型,要求完全相等。在比较对象时,`==`只比较引用,`===`比较内容。推荐使用`===`以确保准确性,但在需要类型转换时可谨慎使用`==`。注意特殊值如`null`和`undefined`的比较。在数据验证、类型判断和条件判断等场景中,应根据需求选择合适的运算符。理解两者差异能提升代码质量和稳定性。
|
15天前
|
JavaScript 前端开发 开发者
解密 JavaScript 中的三元运算符:简洁而强大的条件表达式
解密 JavaScript 中的三元运算符:简洁而强大的条件表达式
18 0
|
1月前
|
JavaScript 前端开发
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
26 1