对于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

转载于:https://www.cnblogs.com/baizhanshi/p/4604257.html

javascript 中==和===的区别相关推荐

  1. Javascript中 != 和 !==的区别

    Javascript中 != 和 !==的区别 开发工具与关键技术:javascript 作者:沈金凤 年级:18级(5)班 撰写日期:2019年1月18日 1.!= 会转换成相同类型 进行比较,!= ...

  2. JavaScript 中 == 和 === 的区别

    1. 引言 这是在 JavaScript 中用来进行数值和对象对比时常用的操作符,从定义上来看: == :抽象相等,比较时会先进性类型转换,然后再比较值 === :严格相等,会比较两个值的类型和值 测 ...

  3. JavaScript学习总结(五)——Javascript中==和===的区别

    一.JavaScript"=="的作用 当==两边的内容是字符串时,则比较字符串的内容是否相等. 当==两边的内容是数字时,则比较数字的大小是否相等. 当==两边的内容是对象或者是 ...

  4. Javascript中“==”与“===”的区别

    在Javascript中有"=="和"==="两种比较运行符,那么他们有什么区别呢? 一.对于string,number等基础类型,==和===是有区别的 1) ...

  5. javascript中==和===的区别

    我们在使用javascript时总要使用判断两个变量是否相等来执行之后的一些操作,我一开始学习javascript的时候,还没有===这个概念,只知道使用==来判断两个变量是否相等,然而在学习过程中发 ...

  6. javascript中==与===的区别

    1.对于基础类型字符串和数字类型来说. a.同类型 ==与===没有区别,都是进行'值'比较 b.不同类型 ==会转换成同一类型的值,然后进行值比较,===会因为类型不同而返回false 2.对于高级 ...

  7. js(小程序或JavaScript)中[]、{}、()区别

    一.{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数体 {}表示对象.[]表示对象的属性.方法,()如果用在方法名后面,代表调用 如:var LangShen = {&quo ...

  8. 在javascript中==和===的区别

    ==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase.举例说明:"1" == true类型不同,"==& ...

  9. JS中 ?? 与 || 的区别

    JavaScript 中 ?? 与 || 的区别 相同点 用法相同,都是前后是值,中间用符号连接.根据前面的值来判断最终返回前面的值还是后面的值. 值1 ?? 值2 值1 || 值2 不同点 判断方式 ...

  10. JavaScript中的数组与伪数组的区别

    在JavaScript中,除了5种原始数据类型之外,其他所有的都是对象,包括函数(Function). 基本数据类型:String,boolean,Number,Undefined, Null 引用数 ...

最新文章

  1. 《MySQL数据技术与实验指导》jxgl数据库的创建和插入
  2. C++STL的string容器
  3. Linux驱动设计之信号量
  4. Programming Ability Test学习 3-05. 求链式线性表的倒数第K项(15)
  5. 用简单的方法构建一个高可用服务端
  6. Linux守护进程的创建(结合nginx框架)
  7. 自定义按键_王者荣耀:自定义按键让你的百里守约百发百中
  8. clion中文乱码_CLion 遇到乱码的解决办法
  9. Mongodb地理位置索引
  10. android win10驱动安装失败,win10系统小米手机驱动安装失败的解决方法
  11. 运算放大器的偏置电流
  12. word转换html分页,将网页(HTML)内容复制转贴到Word的分页控制
  13. 苹果win7系统无线网络无法连接服务器,苹果电脑不能连接wifi怎么修复_苹果电脑wifi连不上解决步骤-win7之家...
  14. 这世上没有末路,你从不曾孤独
  15. 《还是要相信》读书笔记
  16. Python量化交易实战:获取股票数据并做分析处理
  17. python脚本开头怎么写_浅谈Python脚本开头及导包注释自动添加方法
  18. CAD 开发实现不重启CAD软件修改代码调试
  19. 更好地提问ChatGPT_常用prompt表
  20. Java使用spire进行word文档的替换

热门文章

  1. e服务器系统可以用PE来装吗,U盘安装系统有哪些方式可以启动WinPE
  2. ttysac1 java_ttySAC0与/dev/tts/0是否对应同一个物理设备串口0
  3. android的环境搭建与配置
  4. 算法: 最大矩形面积85. Maximal Rectangle
  5. AWS SageMaker 基于 XGBoost 的用户流失预测
  6. java复杂的代码做程序_摆脱复杂烧脑的程序代码,利用快速开发平台轻轻松松做软件...
  7. js导出的xlsx无法打开_遇到U盘无法打开,属性显示0字节这样的问题?数据该如何导出?...
  8. Android studio3.5调用Numcpp库方法
  9. python中utf-8和gbk编码格式_Python:将utf-8格式的文件转换成gbk格式的文件|python3教程|python入门|python教程...
  10. 【收藏】十个深度学习和机器学习问题速问速答