浅谈JS中的!=、== 、!==、===的用法和区别


Posted in Javascript onSeptember 24, 2016
var num = 1; 
  
var str = '1'; 
  
var test = 1; 
  
test == num  //true 相同类型 相同值 
  
test === num //true 相同类型 相同值 
  
test !== num //false test与num类型相同,其值也相同, 非运算肯定是false 
  
num == str  //true  把str转换为数字,检查其是否相等。 
  
num != str  //false == 的 非运算 
  
num === str //false 类型不同,直接返回false 
  
num !== str //true  num 与 str类型不同 意味着其两者不等 非运算自然是true啦

== 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 。

=== 和 !== 只有在相同类型下,才会比较其值。
 
首先,== equality 等同,=== identity 恒等。

==, 两边值类型不同的时候,要先进行类型转换,再比较。

===,不做类型转换,类型不同的一定不等。

下面分别说明:

先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:

1、如果类型不同,就[不相等]

2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)

3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。

4、如果两个值都是true,或者都是false,那么[相等]。

5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。

6、如果两个值都是null,或者都是undefined,那么[相等]。

再说 ==,根据以下规则:

1、如果两个值类型相同,进行 === 比较。

2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:

a、如果一个是null、一个是undefined,那么[相等]。

b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。

c、如果任一值是 true ,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。

d、如果一个是对象,另一 个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试 valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)

e、任何其他组合,都[不相等]。

举例:

"1" == true

类型不等,true会先转换成数值 1,现在变成 "1" == 1,再把"1"转换成 1,比较 1 == 1, 相等。

= 赋值运算符
== 等于
=== 严格等于

例:
var a = 3;
var b = "3";

a==b 返回 true
a===b 返回 false

因为a,b的类型不一样

===用来进行严格的比较判断

var data = ({"val":"7","flag":"true"});
<FONT face=Verdana></FONT>

下面需要如何判断flag的值?

因为true加双引号==推测是字符串true

如果不加双引号===就是布尔值true

这个很重要,之前我一直没有搞清楚这一点

写法1

if(data.flag=true){…}else{..}

这样写怎么都是正确的,根本得不到else的值,原因是这种写法相当于

if(true){…}

写法2

if(data.flag==true){…}else{..}

没有这种写法

写法3

if(data.flag='true'){…}else{..}

这样写怎么都是正确的,根本得不到else的值,原因是这种写法相当于

if(true){…}

写法4

if(data.flag=='true'){…}else{..}

这个才是正确的写法

“=”:这个表示赋值,不是表示运算符

“==”:表示等于(值)

“===”:表示全等于(类型和值)

以上就是小编为大家带来的浅谈JS中的!=、== 、!==、===的用法和区别的全部内容了,希望对大家有所帮助,多多支持三水点靠木~

Javascript 相关文章推荐
JavaScript 闭包深入理解(closure)
May 27 Javascript
jQuery编写widget的一些技巧分享
Oct 28 Javascript
可自己添加html的伪弹出框实现代码
Sep 08 Javascript
jQuery Ajax异步处理Json数据详解
Nov 05 Javascript
调用innerHTML之后onclick失效问题的解决方法
Jan 28 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
Aug 18 Javascript
javascript数组输出的两种方式
Jan 13 Javascript
详解Javascript获取缓存和清除缓存API
May 25 Javascript
浅谈函数调用的不同方式,以及this的指向
Sep 17 Javascript
react-native动态切换tab组件的方法
Jul 07 Javascript
微信小程序页面间值传递的两种方法
Nov 26 Javascript
详解vue组件之间的通信
Aug 30 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
Sep 24 #Javascript
浅谈js常用内置方法和对象
Sep 24 #Javascript
js原生跨域_用script标签的简单实现
Sep 24 #Javascript
js内置对象处理_打印学生成绩单的简单实现
Sep 24 #Javascript
用js实现简单算法的实例代码
Sep 24 #Javascript
jQuery实现移动端手机商城购物车功能
Sep 24 #Javascript
AngularJS实现星星等级评分功能
Sep 24 #Javascript
You might like
解析php中获取系统信息的方法
2013/06/25 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
jQuery 位置插件
2008/12/25 Javascript
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
JavaScript实现大数的运算
2014/11/24 Javascript
jQuery中clearQueue()方法用法实例
2014/12/29 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
bootstrap table配置参数例子
2017/01/05 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
2017/01/23 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
react中Suspense的使用详解
2019/09/01 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
Python之eval()函数危险性浅析
2014/07/03 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python机器人运动范围问题的解答
2019/04/29 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
研究生自荐信
2013/10/09 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
入学生会自荐书范文
2014/02/05 职场文书
丧事主持词大全
2014/04/02 职场文书
大学班级学风建设方案
2014/05/01 职场文书
品德评语大全
2014/05/05 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
2016教师节问候语
2015/11/10 职场文书