您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
js里==和===有什么区别?
类型,两个,都是js里==和===有什么区别?
发布时间:2016-12-08加入收藏来源:互联网点击:
js里==和===有什么区别?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
区别是当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 如果类型不同,直接就是false.
操作数1 == 操作数2, 操作数1 === 操作数2
比较过程:
双等号==:
(1)如果两个值类型相同,再进行三个等号(===)的比较
(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
1)如果一个是null,一个是undefined,那么相等
2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较
三等号===:
(1)如果类型不同,就一定不相等
(2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)
(3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
(4)如果两个值都是true,或是false,那么相等
(5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等
(6)如果两个值都是null,或是undefined,那么相等
回答于 2019-09-11 08:43:50
==:运算符称作相等,用来检测两个操作数是否相等,这里的相等定义的非常宽松,可以允许进行类型转换===:用来检测两个操作数是否严格相等1、对于string,number等基础类型,==和===是有区别的不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等同类型比较,直接进行“值”比较,两者结果一样2、对于Array,Object等高级类型,==和===是没有区别的3、基础类型与高级类型,==和===是有区别的对于==,将高级转化为基础类型,进行“值”比较,因为类型不同,===结果为false
上一篇:有人说“看你笑话、泼你冷水、背后捅你刀子、都是熟人”对此你怎么看?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |