登录  /  注册
首页 > web前端 > js教程 > 正文

JavaScript中equality(==)的用法解释

不言
发布: 2018-11-20 15:40:23
转载
2665人浏览过

本篇文章给大家带来的内容是关于javascript中equality(==)的用法解释,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

神奇之处在哪里

最近负责的项目有涉及到前端的,所以尝试性的写了写js。在处理一个字段非空值的时候,用了 tagert_value == ''来进行判断,然后发生了一件非常奇怪的事情,有用户反馈,自己的target_value = 0的时候,非空值校验不通过。在调试问题的时候,在console状态栏中做了如下尝试:

> 0 == ''
<p>我似乎知道问题出在哪里了。。。没有了解清楚 == 的判断逻辑,所以我打算找来官方的文档瞅瞅。</p><h2>官方解释</h2><div>
<p>Equality (==, !=)</p>
<p>1、If the types of the two expressions are different, attempt to convert them to string, number, or Boolean.</p>
<p>2、NaN is not equal to anything including itself.</p>
<p>3、Negative zero equals positive zero.</p>
<p>4、null equals both null and undefined.</p>
<p>5、Values
 are considered equal if they are identical strings, numerically 
equivalent numbers, the same object, identical Boolean values, or (if 
different types) they can be coerced into one of these situations.</p>
<p>6、Every other comparison is considered unequal.</p>
</div><p>查看了官方关于equality的解释,看到第一个就知道为什么结果会是true了。如果表达式两边的类型不一致,比较方法会先尝试将他们转换为string、number、Boolean,然后在进行比较(相等的条件:同样的string、数学上相等的数字、相同的object、相同的布尔值)。<br>看到这里,基本清楚了,在比较 0 == ’‘的时候先进行了类型装换,那我们来看一下到底是转换的谁啊?</p><pre class="brush:php;toolbar:false">&gt; Number('')
 var b= ''
&gt; b.toString()
<p>非常明显了,int == string 的时候是先将string装换为对应的int值,然后进行比较。</p><h2>如何避免嘞?</h2><p>下面强烈介绍 === (strict equality)。严格等于,看着是不是非常厉害呀。人家的官方叫法是<strong>Identity</strong> (===. !==)。Identity 有点类型悬疑破案的感觉了。<br>看一下官方的介绍:</p><p>Identity (===. !==)<br>These operators behave identically to the 
equality operators except no type conversion is done, and the types must
 be the same to be considered equal.</p><p>在日常开发中,如果没法保证比较表达式两遍的变量的类型一致,建议使用 Identify(===)来比较是否相等。如果变量类型一致,就可以直接使用Equality(==)来比较了。</p>
登录后复制

以上就是JavaScript中equality(==)的用法解释的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:segmentfault网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号