`

转:javascript中的==和===运算符

阅读更多
本文转载自abruzzi的博客,原文地址:
作者:abruzzi
作者联系方式:juntao.qiu@gmail.com
作者Blog:http://abruzzi.iteye.com

运算符==读作“相等”,而运算符===则读作“等同”。这两种运算符操作都是在JavaScript代码中经常见到的,但是意义则不完全相同,简而言之,相等操作符会对两边的操作数做类型转换,而等同则不会。
print(1 == true);  
print(1 === true);  
print("" == false);  
print("" === false);  
print(null == undefined);  
print(null === undefined);  

运行结果
true  
false  
true  
false  
true  
false  

相等和等同运算符的规则分别如下:

相等运算符
如果操作数具有相同的类型,则判断其等同性,如果两个操作数的值相等,则返回true(相等),否则返回false(不相等).
如果操作数的类型不同,则按照这样的情况来判断:
  • null和undefined相等
  • 其中一个是数字,另一个是字符串,则将字符串转换为数字,再做比较
  • 其中一个是true,先转换成1(false则转换为0)再做比较
  • 如果一个值是对象,另一个是数字/字符串,则将对象转换为原始值(通过toString()或者valueOf()方法)
  • 其他情况,则直接返回false

等同运算符
如果操作数的类型不同,则不进行值的判断,直接返回false
如果操作数的类型相同,分下列情况来判断:
  • 都是数字的情况,如果值相同,则两者等同(有一个例外,就是NaN,NaN与其本身也不相等),否则不等同
  • 都是字符串的情况,与其他程序设计语言一样,如果串的值不等,则不等同,否则等同
  • 都是布尔值,且值均为true/false,则等同,否则不等同
  • 如果两个操作数引用同一个对象(数组,函数),则两者完全等同,否则不等同
  • 如果两个操作数均为null/undefined,则等同,否则不等同

分享到:
评论

相关推荐

    javascript运算符语法全面概述.docx

    2. 二元运算符:包括加法运算符+、减法运算符-、乘法运算符*、除法运算符/等,操作数为两个。 3. 比较运算符:包括等于运算符==、不等于运算符!=、大于运算符>等,用于比较两个表达式的值。 4. 规律运算符:包括按位...

    javascript相等运算符与等同运算符

    在JavaScript编程语言中,相等运算符(`==`)与等同运算符(`===`)是两个非常重要的概念,它们用于判断两个值是否相等,但它们的比较方式和逻辑有所不同,这一点对于理解JavaScript的数据类型转换和比较规则至关...

    javaScript 运算符优先级

    39. 赋值运算符:=、+=、-=、*=、/=、%=、<<=、>>=、>>>=、&=、^=、|=。 40. yield:生成器函数中暂停和恢复代码执行。 41. yield*:生成器委托。 42. 展开运算符:...。 43. 逗号运算符:,。 需要注意的是,上述...

    javascript等号运算符使用详解.docx

    * 三个等号(===)运算符:比较两个操作数是否完全相等,不进行隐式类型转换。 下面是它们的比较规则: * 两个等号(==)运算符: + 如果两个操作数是值类型,那么两个操作数必需完全相等才会相等。 + 如果两个...

    头歌教学实践平台 Web前端开发基础 JavaScript学习手册三:JS运算符

    JavaScript是Web前端开发的核心语言之一,它用于实现网页的动态效果和交互功能。在JavaScript中,运算符扮演着至关重要的角色,它们控制着数据的处理...记得经常实践和查阅文档,加深对JavaScript运算符的理解和运用。

    JavaScript 新手24条实用建议[TUTS+]

    1. 用 === 代替 ==JavaScript里有两种不同的相等运算符:===|!== 和==|!=。相比之下,前者更值得推荐。请尽量使用前者。 引用: “如果两个比较对象有着同样的类型和值,===返回true,!==返回false。”– [removed] ...

    javascript表达式和运算符中的一些容易忽略的点共2

    1. 等值运算符:`==` 和 `===` 的区别在于,前者会进行类型转换,而后者则要求两边的值和类型都相等。例如 `0 == ""` 返回 `true`,但 `0 === ""` 返回 `false`。 2. 短路逻辑运算符:`&&` 和 `||`。在逻辑与运算中...

    _02JavaScript运算符.docx

    JavaScript运算符是编程语言中不可或缺的部分,它们用于执行各种计算和逻辑判断,是编写JavaScript代码的基础。本文将详细解析JavaScript中的主要运算符。 1. **算数运算符**: - `+`:加法运算符,可用于数字的...

    18JavaScript运算符和方法介绍

    ### 18JavaScript运算符和方法介绍 #### 一、使用算术运算符 在JavaScript中,算术运算符用于执行基本的数学操作,如加法、减法、乘法、除法等。例如,我们可以定义两个变量`var1`和`var2`并进行加减乘除操作: `...

    JavaScript常用运算符和操作符总结.docx

    在JavaScript中,运算符和操作符是编程时不可或缺的元素,它们用于执行各种计算、比较和逻辑操作。以下是对JavaScript中常用运算符和操作符的详细总结: 1. **算术运算符**: - `+`:加法,可以用于数值相加,也可...

    短路逻辑笔试题:var a=10;以下哪个表达式会报错.docx

    在JavaScript编程语言中,短路逻辑是逻辑运算符`&&`(逻辑与)和`||`(逻辑或)的一种特性。这种特性使得程序在某些情况下能够优化性能,因为它们可以根据第一个操作数的值来决定是否需要评估第二个操作数。在这个...

    JavaScript常用运算符和操作符总结(教辅)

    JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)JavaScript常用运算符和操作符总结(教辅)...

    Java中常见的几种运算符.doc

    Java 中的运算符 Java 中的运算符是指在 Java 语言中用于执行操作的符号。这些符号可以分为七类:算术运算符、关系运算符、位运算符、逻辑运算符、移位运算符、三元运算符和赋值运算符。 一、算术运算符 算术...

    javascript 中的 delete及delete运算符

    本文将详细介绍`delete`运算符的工作原理,以及它和JavaScript中属性的内部属性之间的关系。 首先,`delete`运算符可以从一个对象上删除一个属性。如果删除成功,`delete`运算符会返回`true`;如果尝试删除一个不...

    JavaScript 使用误区

    在 JavaScript 程序中如果你在 if 条件语句中使用赋值运算符的等号 (=) 将会产生一个错误结果, 正确的方法是使用比较运算符的两个等号 (==)。 if 条件语句返回 false (是我们预期的)因为 x 不等于 10: var x = 0;...

    浅谈javascript运算符——条件,逗号,赋值,()和void运算符_.docx

    本文将深入探讨JavaScript中的五种特定运算符:条件运算符、逗号运算符、赋值运算符、括号运算符以及void运算符。 条件运算符,也称为三元运算符,是JavaScript中最紧凑的逻辑判断形式。它具有以下语法结构: ```...

    广东省职业技能等级认定证书试卷样题计算机程序设计员-web前端开发(中级)理论-.docx

    * 等于比较运算符:== * 不等于比较运算符:!= * 大于比较运算符:> * 小于比较运算符:< 四、JavaScript中的字符串操作 * 字符串数据类型的定义:var name = "kaka"; * 字符串的长度:length * 字符串的索引位置...

    WEB开发 之 JavaScript 比较和逻辑运算符.docx

    以下是 JavaScript 中常用的比较运算符: * `==` 等于:用来检查两个值是否相等,例如 `x == 8`。 * `===` 全等(值和类型):用来检查两个值是否相等,包括数据类型,例如 `x === 5`。 * `!=` 不等于:用来检查两...

Global site tag (gtag.js) - Google Analytics