判断两个变量是否相等是程序设计中非常重要的运算。在处理原始值时,这种运算相当简单,但涉及对
象,任务就稍有点复杂。ECMAScript提供了两套运算符处理这个问题,等号和非等号用于处理原始值,
全等号和非全等号用于处理对象。
1. 等号和非等号
在ECMAScript中,等号由双等号(= =)表示,当且仅当两个运算数相等时,它返回true。非等号是感
叹号加等号(!=),当且仅当两个运算数不相等时,它返回true。为确定两个运算数是否相等,这两个
运算符都会进行类型转换。
执行类型转换的基本规则如下:
q 如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。false转换成0,true转换成
1。
q 如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
q 如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串(调用
toString()方法)。
q 如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。
在进行比较时,该运算符还遵守下列规则:
q 值null和undefined相等。
q 在检查相等性时,不能把null和undefined转换成其他值。
q 如果某个运算数是NaN,等号将返回false,非等号将返回true。重要提示:即使两个运算数都是NaN
,等号仍然返回false,因为根据规则,NaN不等于NaN。
q 如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一个对象,那么等
号返回true,否则两个运算数不等。
下表列出了一些特殊情况及它们的结果:
表 达 式
值
null = = undefined true
"NaN" = = NaN
false
5 = = NaN
false
NaN = = NaN
false
NaN != NaN
true
false = =0
true
true = =1
true
true = = 2
false
undefined = = 0
false
null = = 0
false
"5" = = 5
true
2. 全等号和非全等号
等号和非等号的同类运算符是全等号和非全等号。这两个运算符所做的与等号和非等号相同,只是它们
在检查相等性前,不执行类型转换。全等号由三个等号(= = =)表示,只有在无需类型转换运算数就
相等的情况下,才返回true。例如:
在这段代码中,第一个警告使用等号比较字符串"55"和数字55,输出"true"。如前所述,这是因为字符
串"55"将被转换成数字55,然后才与另一个数字55进行比较。第二个警告使用全等号在没有类型转换的
情况下比较字符串和数字,当然,字符串不等于数字,所有输出"false"。
非全等号由感叹号加两个等号(!= =)表示,只有在无需类型转换运算数不相等的情况下,才返回true
。例如:
这里,第一个警告使用非等号,把字符串"55"转换成数字55,使得它与第二个运算数55相等。因此,计
算结果为false,因为两个运算数被看作是相等的。第二个警告使用的是非全等号。该运算是在问:
“sNum与iNum不同吗?”这个问题的答案是:“是的(true)”,因为sNum是字符串,而iNum是数字,
它们当然不同。
分享到:
相关推荐
### JavaScript中的`<script type="text/javascript">`标签...随着技术的发展,虽然`type="text/javascript"`这一属性已经不再是必须的,但在实际项目中仍然可以看到它的身影,特别是为了确保与老版本浏览器的兼容性。
第8章javascript介绍=创新教育基础与实践=大连理工大学.pptx
在JavaScript的switch语句中,实际上使用的是全等于`===`来进行判断,这意味着在case部分的值必须与switch表达式的结果具有相同的值和类型,才会执行对应的代码块。 此外,一个特殊的规则是,`undefined` 和 `null`...
JavaScript中的Undefined和Null通常表示“无”或“未定义”的状态,它们在==运算中的表现与其他语言有所不同。在JavaScript中,undefined可以表示变量未被赋值的状态,而null通常用于表示空值或“无对象”的状态。...
在JavaScript中,比较运算符用来比较两个值,并返回一个表示比较结果的布尔值。比较运算符分为两种:“==”和“===”。虽然表面上看两者非常相似,但它们在比较值时的规则却大不相同,下面详细介绍它们的区别。 ...
这种方式常见于`<a>`、`<input>`等标签中,通过事件属性如`onclick`、`onmousedown`等来触发JavaScript函数。 **示例1:** ```html <a href="javascript:document.write('Hello World!')">Click ``` - **解释:** ...
在JavaScript编程语言中,`this`关键字是一个至关重要的概念,它常常引发初学者的困惑,因为它的值在不同的上下文中可能会有所不同。`this`关键字主要用来引用对象的上下文,或者说是当前执行环境中的对象。在本文中...
### 使用JavaScript中的ActiveXObject填充并设置Excel格式 在IT领域,特别是对于那些处理大量数据的开发者来说,能够熟练地利用编程语言对Excel进行操作是一项非常有用的技能。本篇将详细介绍如何使用JavaScript...
标签中的“技巧”涵盖了很多领域,比如性能优化、错误处理、异步编程(如Promise和async/await)、模块化(如CommonJS和ES模块)、以及最新的JavaScript特性,如箭头函数、模板字符串、解构赋值等。 总的来说,这个...
JavaScript 是一种广泛应用于 Web 开发中的脚本语言,下面是常用的 JavaScript 案例大全,包括原生 JavaScript 实现字符串长度截取、获取域名主机、清除空格、替换全部、转义 HTML 标签、还原 HTML 标签、时间日期...
它在网页中的应用无处不在,从简单的表单验证到复杂的前端应用,都是JavaScript的用武之地。这份“JavaScript参考手册集合chm版打包”正是为初学者提供的一份全面学习资源,包含了JavaScript语言的各个重要组成部分...
在面向对象的JavaScript中,类的成员可以根据它们与类和对象的关系分为“类成员”和“实例成员”。 ##### 8.2.1 实例属性和实例方法 **定义:** 实例成员包括实例属性和实例方法。每个对象实例都有自己的实例属性...
在网页开发中,经常需要使用 **JavaScript** 来创建弹出窗口来展示额外的信息或者进行某些操作。最简单的弹出窗口可以通过 `window.open()` 方法来实现。 ##### 基础语法示例: ```javascript <SCRIPT LANGUAGE=...
在本文中,我们将讨论如何使用JavaScript连接Oracle实例。 标题解释 JavaScript是一种广泛使用的客户端脚本语言,而Oracle则是一种流行的关系数据库管理系统。在实际应用中,我们经常需要使用JavaScript来连接...
3. **Flash 发布设置**: 为了使 Flash 能够与 JavaScript 通信,需要在 Flash 的发布设置中启用 "Allow Script Access",并指定访问类型,如 "always" 或 "sameDomain"。 **JavaScript 调用 Flash 示例** ```html ...
html中<script type="module">的脚本调用<script type="text/javascript">中的脚本。 元素的onClick事件调用<script type="module">的脚本。
`<input type="checkbox">`定义了复选框,`id`属性用于唯一标识每个复选框,而`for`属性在`<label>`标签中与`id`关联,使用户点击标签时也能选中或取消选中对应的复选框。 在JavaScript中,我们可以通过DOM操作来...
**JavaScript**是一种轻量级的编程语言,被广泛应用于网页开发中,用于增强网页的交互性与动态效果。以下是一些基本的语法和使用技巧。 ##### 1. 嵌入JavaScript代码 在HTML文档中嵌入JavaScript代码可以通过`...
JavaScript可以通过多种方式被引入到网页中: 1. **页面嵌入式**:通过`<script type="text/javascript"></script>`标签直接在HTML文档中嵌入JavaScript代码。 2. **外部文件**:通过`<script type="text/...
在JavaScript中,`==` 和 `+` 是两种常见的操作符,它们各自有着特定的用途和行为,有时候会让初学者感到困惑。本文将深入探讨这两个操作符的工作原理,以帮助你更好地理解和应用它们。 首先,我们来看 `==`,这是...