`

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

    JavaScript知识点总结(五)之Javascript中两个等于号(==)和三个等于号(===)的区别

    一、JavaScript”==”的作用 1.当==两边的内容是字符串时,则比较字符串的内容是否相等。 2.当==两边的内容是数字时,则比较数字的大小是否相等。 3.当==两边的内容是对象或者是对象的函数属性时,则比较内存地址...

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

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

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

    要实现C++和JavaScript的数据交互,我们需要利用两个主要的接口:`IDispatch`和`IHtmlDocument2`。`IDispatch`接口允许我们调用对象的属性和方法,而`IHtmlDocument2`接口提供了对HTML文档的访问,使我们能够获取或...

    纯Javascript编写的div拖拽以及用鼠标绘制div之间连接线(包含箭头)

    纯Javascript编写的div拖拽以及用鼠标绘制div之间连接线,外部资源仅需要jquery。...4、用鼠标绘制两个节点之间带有箭头的连线 5、连接线随节点移动保持连接状态 6、附带节点鼠标右键弹出自定义菜单代码

    识别两个图像之间的差别并创建的不同部分图像

    总之,“识别两个图像之间的差别并创建不同部分图像”是一个涵盖JavaScript编程、图像处理和差异检测技术的综合性问题。通过学习和实践,开发者可以掌握这一技术,并将其应用于各种创新的项目中。

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

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

    JavaScript中两个感叹号的作用说明

    两个感叹号的组合实际上是两次逻辑非操作的连续应用。第一次!操作会将非布尔值转换为布尔值,第二次!操作则会反转这个布尔值,从而再次得到一个布尔值。这种机制特别有用,因为它可以确保结果始终是true或false。 ...

    两个等号与三个等号的区别

    这篇文章将详细探讨这两个符号在编程中的区别。 首先,我们要了解的是单个等号(=)。在大多数编程语言中,等号用于赋值操作。例如: ```javascript var a = 5; // 赋值操作,将5赋给变量a ``` 这里的等号表示将...

    JavaScript基础复习大纲

    JavaScript 与 Java 区别没有任何关系,两个公司开发的两个不同的产品,作用与用途大不一样,但两者语法上有很多相似之处,JavaScript 并不是 Java 的子集。 六、JavaScript 代码的位置 我们可以在 3 个地方编写...

    javascript调用delphi中的函数

    标题“javascript调用delphi中的函数”涉及到的技术领域是跨语言通信,具体是JavaScript与Delphi之间的交互。这种交互通常发生在Web应用程序与桌面应用程序的集成,或者在浏览器扩展和本地资源之间。以下是对这一...

    javascript两个object对比较函数

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

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

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

    JavaScript计算两个日期时间段内日期的方法

    在JavaScript编程中,有时我们需要处理日期和时间,例如计算两个日期之间的时间差或者获取这两个日期时间段内的所有日期。本文将详细介绍一个JavaScript函数`dataScope`,该函数用于计算并返回两个日期之间(包括...

    两个Javascript实战-统计表格和图片旋转.zip

    这两个实战项目展示了JavaScript在前端开发中的强大能力,无论是数据可视化还是交互式用户体验,都能通过JavaScript实现。通过学习和实践这两个案例,开发者可以提升自己在Web开发中的技能,为网页增添更多生动有趣...

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

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

    JavaScript中的比较操作符>、<、>=、<=介绍

    在JavaScript编程语言中,比较操作符是比较两个变量或表达式的值并返回一个布尔值(true或false)的运算符。JavaScript中常用的比较操作符包括大于(>)、小于(<)、大于等于(>=)、小于等于()。这些操作符可以...

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

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

    Bootstrap Table两个table间行数据拖拽

    在“Bootstrap Table两个Table数据之间行数据拖拽”的主题中,我们主要讨论的是如何实现用户可以通过拖放操作在两个Bootstrap表格之间移动行数据,这种功能在数据管理、比较或重新排序场景中非常实用。 首先,我们...

Global site tag (gtag.js) - Google Analytics