博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS中的!=、== 、!==、===的用法和区别。
阅读量:5978 次
发布时间:2019-06-20

本文共 1415 字,大约阅读时间需要 4 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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

转载于:https://www.cnblogs.com/kungfupanda/p/4535865.html

你可能感兴趣的文章
SQL中distinct的用法
查看>>
我们为什么要用Ionic开发webApp
查看>>
我的友情链接
查看>>
mybtis<set> <where> <tirm> 等标签的作用
查看>>
我的友情链接
查看>>
Can we deploy the RM on the standby DB?
查看>>
pssh linux
查看>>
mysqldump中文乱码问题
查看>>
php制作验证码图片
查看>>
谷歌给力哦。。一不小心
查看>>
我的友情链接
查看>>
Hyper-V 3 虚拟机快照之一:快照应用介绍
查看>>
晕死了,捣鼓一天,也没解决RHEL6的上网问题
查看>>
ER数据库建模开源软件
查看>>
org.springframework.data.domain.Sort
查看>>
我的友情链接
查看>>
利用subversion,usvn,rsync,cwrsyn,管理Windows Server IIS 站点文件的更新(2)
查看>>
Win7怎么共享无线 Win7无线网络共享全攻略
查看>>
python 卸载模块
查看>>
react学习笔记2:jsx
查看>>