判断两个变量是否相等是程序设计中非常重要的运算。在处理原始值时,这种运算相当简单,但涉及对
象,任务就稍有点复杂。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中,比较运算符用来比较两个值,并返回一个表示比较结果的布尔值。比较运算符分为两种:“==”和“===”。虽然表面上看两者非常相似,但它们在比较值时的规则却大不相同,下面详细介绍它们的区别。 ...
在JavaScript中,`document.write()` 方法用于将指定的内容写入正在加载的文档中。这通常用于动态创建网页内容。 #### 2. JS中的注释为`//` 在JavaScript中,有两种注释方式:单行注释(`//`)和多行注释(`/* */`...
### 使用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中比较运算符,可能大家用的比较多的是“==”、对于“===”很多人可能很陌生。=== 表示恒等,首先比较两边的变量数据类型是否相等,其次比较两边的变量的数值是否相等;== 表示相等即仅仅比较两边变量...
### HTML网页中常用的JavaScript知识点详解 #### 一、弹出模态对话框 在HTML页面中,有时我们需要创建一个模态对话框来显示特定的信息或让用户进行某种操作。JavaScript提供了`showModalDialog`方法实现这一功能。...
html中<script type="module">的脚本调用<script type="text/javascript">中的脚本。 元素的onClick事件调用<script type="module">的脚本。
`<input type="checkbox">`定义了复选框,`id`属性用于唯一标识每个复选框,而`for`属性在`<label>`标签中与`id`关联,使用户点击标签时也能选中或取消选中对应的复选框。 在JavaScript中,我们可以通过DOM操作来...
JavaScript 中的基本数据类型包括 `String`、`Number`、`Boolean`、`Null`、`Object` 和 `Function`。例如: ```javascript let str = "Hello"; // String let num = 123; // Number let bool = true; // Boolean ...
JavaScript可以通过多种方式被引入到网页中: 1. **页面嵌入式**:通过`<script type="text/javascript"></script>`标签直接在HTML文档中嵌入JavaScript代码。 2. **外部文件**:通过`<script type="text/...
在JavaScript中,`==` 和 `+` 是两种常见的操作符,它们各自有着特定的用途和行为,有时候会让初学者感到困惑。本文将深入探讨这两个操作符的工作原理,以帮助你更好地理解和应用它们。 首先,我们来看 `==`,这是...