原文: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]。也就是说试用严格比较符号,上诉的问题都不复存在。
相关推荐
JavaScript (JS) 是一种广泛使用的脚本语言,常用于Web开发以增强用户交互体验。本文将重点介绍几个基础的JS标签及其应用场景,这对于初学者来说是非常有用的入门知识。 #### 二、基础知识概述 在讨论具体的JS标签...
本主题将深入探讨JavaScript中的"=="和"==="这两个等号操作符的区别,以及它们在不同情况下的行为。 首先,让我们理解"=="(双等号)操作符。这个操作符用于检查两个值是否相等,但它会进行类型转换。这意味着,...
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 程序中如果你在 if 条件语句中使用赋值运算符的等号 (=) 将会产生一个错误结果, 正确的方法是使用比较运算符的两个等号 (==)。 if 条件语句返回 false (是我们预期的)因为 x 不等于 10: var x = 0;...
在JavaScript编程语言中,等号(`==`)与全等号(`===`)是两种用于比较操作的重要符号。本文将深入探讨这两种符号的区别、应用场景以及如何正确使用它们来提高代码的质量和可读性。 ### 等号 `==` #### 基本概念 ...
双等号“==”是JavaScript中的相等运算符,它用于比较两个值是否在逻辑上相等,但可能会发生类型转换。当使用“==”运算符比较两个不同类型的值时,JavaScript会尝试进行类型转换,以便将一个值转换为另一个值的类型...
(1)简化代码 JavaScript定义对象和数组非常简单,我们想要创建一个对象,一般是这样写的: 代码如下: var car = new Object(); car.colour = ‘red’; car.wheels = 4; car.hubcaps = ‘spinning’; car.age = 4; ...
在Javascript中判断相等关系有双等号(==)和三等号(===)两种。其中双等号(==)是值相等,而三等号(===)是严格相等(值及类型是否完全相等)。 因此有几个常识知识: 1、对于string,number等基础类型,==和===是有区别...
(3)使用 JavaScript 加密库 JavaScript 加密库是专门用于加密 JavaScript 代码的库。例如,使用 JavaScript 加密库对 JavaScript 代码进行加密,得到的密文如下: var encryptedCode = encryptJavaScriptCode(...
本文将深入探讨如何使用JavaScript(配合C#)来操作这种控件,以实现更丰富的交互功能和动态更新。 首先,了解DropDownList的基本使用。在ASP.NET页面上,我们可以通过以下方式声明一个DropDownList: ```asp.net ...
<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:...
在Domino XPages开发中,引用JavaScript(JS)和 Cascading Style Sheets(CSS)是构建交互式和美观用户界面的关键步骤。以下是如何在XPages环境中有效地引用这些资源的详细说明。 1) 直接在代码中引用: 这种方法...
新闻浏览次数:<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="{...
1. 用 === 代替 ==JavaScript里有两种不同的相等运算符:===|!== 和==|!=。相比之下,前者更值得推荐。请尽量使用前者。 引用: “如果两个比较对象有着同样的类型和值,===返回true,!==返回false。”– [removed] ...
比如你的INPUT是:<input type="text" name="userName">那么你在里边加入:onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"成为:<input type="text" name="userName" onKeypress=...
可能有些同学看到这个标题就会产生疑惑,为什么我们要判断JavaScript中的两个变量是否相等,JavaScript不是已经提供了双等号“==”以及三等号“===”给我们使用了吗? 其实,JavaScript虽然给我们提供了相等运算符,...
- **DOM定位**:`dom=javascriptExpression`,使用JavaScript表达式来定位元素。表达式需以“document”开头。 - **XPath定位**:`xpath=xpathExpression`,利用XPath表达式定位元素,表达式需以“//”开头。 - *...
js.js 是一个用 JavaScript 编写的 JavaScript 解释器 Instead of trying to create an interpreter from scratch, SpiderMonkey is compiled into LLVM and then emscripten translates the output into ...
### JavaScript 学习基础心得 在深入探讨JavaScript的基础深度原理之前,我们首先了解JavaScript的一些基本概念,这将有助于我们更好地理解和应用这些高级知识点。 #### 浏览器组成 浏览器是JavaScript运行的重要...