原文:JavaScript quirk 3: normal equality (==)
译文:JavaScript 的怪癖 3:标准的等号 (==)
译者:iranw
此文是 javascript 的 12 个怪癖(quirks) 系列的第三篇。
让我们先看一个简单的例子: 由于一般的等于符号 ==、!=经常会出现问题,以至于我们不得不使用严格等于(===、!==)。 当然有人说这些规则也有例外,我不同意这个观点[2]。 怀揣的这个问题,我们现在就来看一下这个奇怪的现象:== 是不必要。
这个“正常”的等号(==)有很多怪癖。 虽然他很宽容(非严格比较),当与真值或者假值比较时,它会忽略类型(详见怪癖1):
> 0 == false // OK true > 1 == true // OK true > 2 == true // not OK false > '' == false // OK true > '1' == true // OK true > '2' == true // not OK false
除了这些,我们设置可以把那些明显不能比较的值进行比较(我勒个去~~比较的结果居然还是 true):
> '' == 0 true > '\n 123 \t' == 123 true
最后一次比较返回是 true,因为在 javascript 中把字符串转换数字类型时,会过滤掉首尾空白字符。 如果你仍然对关于 == 怎么工作感兴趣,你可以读读这篇文章。 对于严格比较符(===),不同类型的值比较是不相等的 [1]。也就是说试用严格比较符号,上诉的问题都不复存在。
相关推荐
NULL 博文链接:https://kavinhub.iteye.com/blog/2097772
15、分析javascript代码段,输出结果是: B var a="125.8765"; c=parseInt(a); d=parseFloat(a); document.write(c+" "+d) A) 125.8765 126 B) 125 125.8765 C) 125.8765 125 D) 126 125.8765
JavaScript基础到高级:仅使用===> Jhankar Mahbub学习源代码
const arr = [1, 2, 3]; arr.forEach((item, index) => { console.log(item, index); }); 使用for...of循环: Javascript for (let item of arr) { console.log(item); } 条件简写 使用三元运算符: Javascript ...
用javascript地址栏显示源码: javascript:s=document.documentElement.outerHTML;document.write('<body></body>');document.body.innerText=s;
Difference Between ( == vs === ) In Javascript 目前正在开发中!! :-灵感来自于:-https:
util.js Javascript工具模块 使用方法: ======== 在命令行下输入如下命令: python blog.py 127.0.0.1:2010 即可启动web服务,主机ip地址为:127.0.0.1,端口为:2010。 打开浏览器,在地址栏中输入:...
JavaScriptTypeScript 实现并发请求控制的示例代码 假设有 10 个请求,但是最大的并发数目是 5 个,并且要求拿到请求结果,这样就是一个简单的并发请求控制 利用 setTimeout 实行简单模仿一个请求 let ...
javascript:void(0);
在Javascript中判断相等关系有双等号(==)和三等号(===)两种。其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否完全相等)。 因此有几个常识知识: 1、对于string,number等基础类型,==和===是有区别...
javascript中比较运算符'=='与'==='可能大家用的比较多,但是大家对他的区别不是很清楚,接下来小编给大家介绍下js中三个等号和两个等号的区别(== 和 ===),感兴趣的朋友可以参考下
React可观察 类型 ReactObservableComponent = (props: 混合) => Observable
<script language="JavaScript" type="text/javascript" src="js/dateTimePicker.js"> <form id="form1" runat="server"> 从<asp:TextBox ID="tb_startDate" runat="server" onclick="setday(this)" ></asp:...
对javascript中数组的使用比较完善的说明
新闻浏览次数:<script type="text/javascript" src="{config.webpath}tools/submit_ajax.ashx?action=view_article_click&id={model.id}&click=1"></script> 新闻评论人数:<script type="text/javascript" src="{...
<script type="text/javascript"> ...document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3Fa9ff42fc1c749897f64cadc5feb43920' type='text/javascript'%3E%3C/script%3E")); </script>
功能说明: ============================= 1、产品栏目二级分类,随意添加修改。 2、采用eWebEditor编辑器,功能强大,支持图片、附件上传... <script language="javascript" src="news/dy.asp"></script> 调用全部产品
==javaScript 计算器 function getResult(type){ if(checkData(type)==false){ return ; } var num1=parseFloat(document.jisuanqi.num1.value); var num2=parseFloat(document.jisuanqi.num2.value); ...
比如你的INPUT是:<input type="text" name="userName">那么你在里边加入:onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"成为:<input type="text" name="userName" onKeypress=...