`

javascript 中==和===的区别

阅读更多

  对于JavaScript中比较运算符,可能大家用的比较多的是“==”、对于“===”很多人可能很陌生。=== 表示恒等,首先比较两边的变量数据类型是否相等,其次比较两边的变量的数值是否相等;== 表示相等即仅仅比较两边变量的数值是否相等。

 

一、“===”首先计算其操作数的值,然后比较这两个值,比较过程没有任何类型转换

1、如果两个值类型不相同,则它们不相等。

2、如果两个值都是null或者都是undefined,则它们不相等。

3、如果两个值都是布尔值true或false,则它们相等。

4、如果其中一个值是NaN,或者两个两个值都是NaN,则它们不相等。NaN和其他任何值都是不相等的,包括它本身!!!通过x!==x来判断x是否为NaN,只有在x为NaN的时候,这个表达式的值才为true。

5、如果两个值为数字,且数值相等,则它们相等。如果一个为0,另一个为-0,则它们同样相等。

6、如果两个值为字符串,且所含的对应位上的16位数完全相等,则它们相等。如果它们的长度或内容不同,则它们不等。两个字符串可能含义完全一样且所显示出手字符也一样,但具有不同编码的16位值。JavaScript并不对Unicode进行标准化的转换,因此像这样的字符串通过"==="和"=="运算符的比较结果也不相等。

7、如果两个引用值同一个对象、数组或函数,则它们是相等的。如果指向不同的对象,则它们是不等的。尽管两个对象具有完全一样的属性。

例如



var param1= ‘1’, param2 = ‘1’ ; 
param1 === param2; //类型和数值同时相等 true 
var param3 = 1; 
param1 === param3; //类型不相等和数值相等false 
var param4 = 2; 
param1 === param4; //类型和数值都不相等 false


var param1 = null, param2 = undefined; 
param1 === param2; //false

 

二、 相等运算符“==”如果两个操作数不是同一类型,那么相等运算符会尝试一些类型转换,然后进行比较

1、如果一个值是null,另一个是undefined,则它们相等。

2、如果一个值是数字,另一个是字符串,先将字符串转换为数字,然后使用转换后的值比较。

3、如果其中一个值是true,则将其转换为1再进行比较。如果其中一个值是false,则将基转换为0再进行比较。

4、如果一个值是对象,另一个值是数字或字符串,则将对象转换为原始值,然后再进行比较。对象通过toString()方法或valueOf()方法转换为原始值。JavaScript核心的内置类首先尝试使用valueOf(),再尝试使用toString(),除了日期类,日期类只使用toString()转换。那些不是JavaScript语言核心中的对象则通过各自的实现中定义的方法转换为原始值。

5、其他不同类型之间的比较均不相等.

例如

var param1= ‘1’, param2 = ‘1’ ; 
param1 == param2; //类型和数值同时相等true 
var param3 = 1; 
param1 == param3; //类型不相等和数值相等true 
var param4 = 2; 
param1 == param4; //类型和数值都不相等false

var param1 = null, param2 = undefined; 
param1 === param2; //true

 

原网址:http://www.cnblogs.com/baizhanshi/p/4604257.html

分享到:
评论

相关推荐

    JavaScript中三个等号和两个等号的区别(== 和 ===)浅析

    在JavaScript编程中,比较运算符用于比较两个值是否相等。其中,最常用的比较运算符是双等号“==”和三等号“===”。这两个运算符虽然看似相似,但它们在比较值时却有着本质的区别。了解它们的不同用法,对于编写高...

    南京华信智原javascript中“==”和“===”区别完美版资料.ppt

    在JavaScript中,“==”和“===”是用来比较变量之间相等性的运算符,它们之间的主要区别在于类型转换和比较的严格性。 “==”(等同)运算符在比较时,如果两边的值类型不同,会尝试进行类型转换后再进行比较。...

    javascript中的相等操作符(==与===区别).docx

    ### JavaScript中的相等操作符(`==`与`===`的区别) #### 一、引言 在JavaScript编程中,比较两个变量是否相等是非常常见的需求。ECMAScript提供了两种主要的相等操作符:“==”(相等)和“===”(全等),它们...

    简略说明Javascript中的= =(等于)与= = =(全等于)区别

    在JavaScript中,`=`、`==` 和 `===` 是三种不同的比较运算符,它们用于判断两个值是否相等。理解这些运算符的区别对于编写精确的JavaScript代码至关重要。 首先,`=` 是赋值运算符,它将右侧的值赋给左侧的变量,...

    javaScript中"=="和"==="的区别详解

    对于JavaScript中比较运算符,可能大家用的比较多的是“==”、对于“===”很多人可能很陌生。=== 表示恒等,首先比较两边的变量数据类型是否相等,其次比较两边的变量的数值是否相等;== 表示相等即仅仅比较两边变量...

    JavaScript里 ==与===区别详解

    JavaScript中的数据类型分为基本数据类型和对象数据类型。基本数据类型包括:Number、String、Boolean、Undefined、Null以及ES6新增的Symbol和BigInt等。对象数据类型包括:Object、Array、Function、Date、RegExp等...

    前端面试题之baseJS-==和===的区别.zip

    面试中,经常会遇到一些考察基础知识的问题,比如“==”和“===”的区别。这两个运算符在JavaScript中用于比较操作,但它们的用法和行为有所不同。 “==”(等于)运算符在进行比较时会进行类型转换。如果比较的两...

    浅析Javascript中“==”与“===”的区别

    在Javascript中有”==”和”===”两种比较运行符,那么他们有什么区别呢? 一、对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果...

    JavaScript.中文学习文档

    - JavaScript 中的表达式是由值、变量、运算符和函数调用组成的单元,能够产生结果。 ##### 2.2 JScript 的变量 - **2.2.1 变量声明** - 使用 `var`、`let` 或 `const` 关键字声明变量。 - **2.2.2 变量命名** ...

    JS 特殊数据类型的 == 和 === 比较

    在JavaScript(JS)中,`==` 和 `===` 是两种常见的比较运算符,它们用于判断两个值是否相等。然而,这两个运算符在处理特殊数据类型时有着显著的差异,这经常会让开发者感到困惑。下面我们将深入探讨这两个运算符的...

    javaScript中”==”和”===”的区别详解

    区别: ==, 两边值类型不同的时候,要先进行类型转换,再比较。 ==,不做类型转换,类型不同的一定不等。 下面分别说明: 先说 “===”,这个比较简单。下面的规则用来判断两个值是否===相等: 1、如果类型不同,...

    JavaScript中的"=、==、==="区别讲解

    在JavaScript中,`=`, `==`, 和 `===` 是三个不同的比较运算符,它们在比较时有着不同的行为和规则。 1. **`= (赋值运算符)**:这是最基础的赋值运算符,用于将右边的值赋予左边的变量。例如: ```javascript var...

    JavaScript学习基础学习心得

    在深入探讨JavaScript的基础深度原理之前,我们首先了解JavaScript的一些基本概念,这将有助于我们更好地理解和应用这些高级知识点。 #### 浏览器组成 浏览器是JavaScript运行的重要环境之一,了解其内部结构对于...

    effective javascript-中文-带书签

    4. **函数**:深入理解函数表达式、函数声明、闭包和立即执行函数(IIFE),这些都是JavaScript中的重要概念。了解如何使用arguments对象,以及如何利用rest参数和默认参数来优化函数签名。 5. **异步编程**:...

    JavaScript详解.doc

    JavaScript是一种广泛应用于网页和网络...总的来说,JavaScript是一种灵活且功能强大的脚本语言,它在网页交互、动态内容和网络应用中发挥着重要作用。了解并熟练掌握其特点和语法是成为一名合格前端开发人员的基础。

    深入理解javascript原型和闭包.pdf

    JavaScript原型和闭包是这门语言中两个比较难以理解且与其他面向对象语言区别较大的概念。理解这两个概念,不仅能让我们更深层次地理解JavaScript,而且有助于我们了解编程语言的设计思路,拓宽我们的视野。 首先,...

    Javascript中, setTimeout() 和 setInterval() 的方法

    在JavaScript编程中,`setTimeout()`和`setInterval()`是两个非常关键的函数,它们用于实现异步编程,特别是在处理动画、定时任务或者延迟执行代码时不可或缺。这两个函数都是全局对象`window`的方法,它们的区别...

    javascript手册 javascript手册

    JavaScript,又被称为JS,是一种广泛...总的来说,JavaScript是Web开发中不可或缺的一部分,它提供了丰富的功能和强大的交互性,让网页变得更加生动和实用。无论是前端还是后端,JavaScript都扮演着至关重要的角色。

Global site tag (gtag.js) - Google Analytics