`

javaScript中两个等于号和三个等于号之间的区别

阅读更多
javaScript中两个等于号和三个等于号之间的区别

一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。
===表示恒等于,比较的两边要绝对的相同

alert(0 == ""); // true
alert(0 == false); // true
alert("" == false); // true

alert(0 === ""); // false
alert(0 === false); // false
alert("" === false); // false

先说 ===,这个比较简单,具体比较规则如下:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。

再说 ==,具体比较规则如下:

1、如果两个值类型相同,进行 === 比较,比较规则同上
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合(array数组等),都[不相等]。
分享到:
评论

相关推荐

    javaScript中两个等于号和三个等于号之间的区别介绍

    这两个运算符在进行比较时有着本质的区别。理解这些区别对于编写可预测且健壮的代码至关重要。 双等号(==)被称为松散比较运算符。当双等号用于比较两个值时,它会尝试将值转换为相同的类型,然后再进行比较。转换...

    javascript中的=等号个数问题两个跟三个有什么区别

    javaScript中两个等于号和三个等于号之间的区别 一言以蔽之:==先转换类型再比较,===先判断类型,如果不是同一类型直接为false。 ===表示恒等于,比较的两边要绝对的相同 alert(0 == “”); // true alert...

    JavaScript中三个等号和两个等号的区别(== 和 ===)浅析

    在JavaScript编程中,比较运算符用于比较两个值是否相等。其中,最常用的比较运算符是双等号“==”和三等号“===”。这两个运算符虽然看似相似,但它们在比较值时却有着本质的区别。了解它们的不同用法,对于编写高...

    javascript 两个页面之间传值

    以上就是在JavaScript中两个页面之间传值的常见方法。每种方法都有其适用场景,根据实际需求选择合适的方式。记住,跨域安全问题在使用这些方法时也需要考虑,特别是涉及到`localStorage`和`postMessage`时。在实际...

    kettle中使用js计算两个日期之间的天数.txt

    kettle中使用js计算两个日期之间的天数

    JS 获得两个时间间隔天数

    在JavaScript中,获取两个日期之间的天数差是一个常见的任务,特别是在处理时间和日期相关的应用程序中。这篇博客“JS获得两个时间间隔天数”提供了一个实用的方法来解决这个问题。在这个方法中,我们将探讨如何利用...

    两个比较好用的Eclipse中javascript插件jsEditor jsEclipse

    在压缩包"Eclipse_Javascript插件"中,可能包含了这两款插件的安装文件。用户只需要将它们解压后导入到Eclipse的工作空间,或者按照Eclipse的插件安装步骤导入对应的更新站点。确保正确安装后,用户就可以享受到js...

    javascript两个3D特效插件

    javascript两个3D特效插件2

    源代码——MFC的WebBrowser控件 C++与JavaScript之间数据交互传递

    在"GeoDemo"这个示例中,我们可以看到两个模块,分别展示了数据交互的两个方向。可能包括了C++向JavaScript传递数据,例如传递地理位置信息,让JavaScript绘制地图;以及JavaScript向C++发送请求,比如用户在网页上...

    javascript中文参考手册

    JavaScript还支持原型继承,使得对象之间可以共享属性和方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。 DOM...

    相关性分析通常可以分为两个方面,一是计算两个变量之间的相关系数,二是分析相关系数的显著性 以下是使用JavaScript实现这两

    相关性分析通常可以分为两个方面,一是计算两个变量之间的相关系数,二是分析相关系数的显著性。以下是使用JavaScript实现这两个方面的示例代码:使用该函数,可以传入相关系数值和样本量作为参数,返回相关系数的...

    javascript两个object对比较函数

    javascript两个object对比较函数,分单层跟多层比较的

    判断JavaScript中的两个变量是否相等的操作符

    在JavaScript中,判断两个变量是否相等是常见的需求,尽管语言提供了双等号“==”和三等号“===”这两种操作符来实现比较,但它们在使用过程中可能产生一些不符合直觉的结果。特别是对于特殊值如+0和-0、null和...

    交换两个div的位置

    在前端开发中,有时我们需要通过JavaScript来动态地调整页面元素的位置,比如实现两个`<div>`元素的位置互换。本篇文章将详细解析如何通过JavaScript实现这一功能,并深入探讨相关技术细节。 #### 核心概念与原理 ...

    深入解析 JavaScript 中的 indexOf 和 includes 方法

    本文将详细探讨这两个方法的区别、用途以及如何在实际开发中使用它们。 String.prototype.indexOf 和 String.prototype.includes 是 JavaScript 中处理字符串的两个基本方法,它们在不同的场景下有着不同的用途。...

    swift 与 javascript 之间的相互调用及传值

    在现代软件开发中,Swift 和 JavaScript 作为两种不同的编程语言,各自在移动应用(iOS)和Web开发领域占据着重要地位。随着技术的发展,跨平台交互的需求日益增长,使得Swift和JavaScript之间的通信变得至关重要。...

    javascript网页版计算器

    - 计算结果:当用户点击等于号(=)时,JavaScript会对当前表达式进行求值,使用内置的数学函数(如`Math.pow`、`Math.sqrt`等)进行计算。 - 显示结果:计算完成后,JavaScript会更新显示区域的内容,展示计算...

    ASP与JavaScript之间的数据通信.pdf

    在本文中,我们将通过一个具体的例子来说明ASP和JavaScript之间的数据交换。我们将使用“连动二级下拉列表框”作为例子,来展示如何使用ASP和JavaScript来实现数据交换。 在这个例子中,我们首先需要在服务器端使用...

    javascript课程内容总结

    JavaScript 的输出方式有两种:document.write() 用于页面输出,console.log() 用于控制台输出。 弹窗 JavaScript 提供了三种弹窗方式:alert() 直接弹窗、confirm() 确认弹窗和 prompt() 输入框弹窗。 数据类型...

Global site tag (gtag.js) - Google Analytics