`
西门吹牛
  • 浏览: 227244 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

==和===的判断规则

阅读更多

一直以为js里非0即真,所以 alert(333==true);应该返回true吧?但是
错!错!错!这是一个值得注意的小细节



摘自http://abruzzi.iteye.com/blog/632010

相等运算符

如果操作数具有相同的类型,则判断其等同性,如果两个操作数的值相等,则返回true(相等),否则返回false(不相等).

如果操作数的类型不同,则按照这样的情况来判断:

l  null和undefined相等

l  其中一个是数字,另一个是字符串,则将字符串转换为数字,在做比较

l  其中一个是true,先转换成1(false则转换为0)在做比较

l  如果一个值是对象,另一个是数字/字符串,则将对象转换为原始值(通过toString()或者valueOf()方法)

l  其他情况,则直接返回false



等同运算符

如果操作数的类型不同,则不进行值的判断,直接返回false

如果操作数的类型相同,分下列情况来判断:

l  都是数字的情况,如果值相同,则两者等同(有一个例外,就是NaN,NaN与其本身也不相等),否则不等同

l  都是字符串的情况,与其他程序设计语言一样,如果串的值不等,则不等同,否则等同

l  都是布尔值,且值均为true/false,则等同,否则不等同

l  如果两个操作数引用同一个对象(数组,函数),则两者完全等同,否则不等同

l  如果两个操作数均为null/undefined,则等同,否则不等同
分享到:
评论

相关推荐

    ==和equals的区别

    在 Java 中,比较值大小有两种方法:== 和 equals,这两个方法的使用场景和比较规则不同,下面我们将详细探讨它们的区别。 基本数据类型和引用数据类型 在 Java 中,有两种数据类型:基本数据类型和引用数据类型。...

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

    然而,了解“==”运算符的类型转换规则在某些情况下也是有用的,特别是在处理一些需要特定类型转换的逻辑判断时。 以下是一些使用“==”和“===”运算符的示例: 1. var a = 3; var b = "3"; a == b返回true,因为...

    JS 特殊数据类型的 == 和 === 比较

    在JavaScript(JS)中,`==` 和 `===` 是两种常见的比较运算符,它们用于判断两个值是否相等。然而,这两个运算符在处理特殊数据类型时有着显著的差异,这经常会让开发者感到困惑。下面我们将深入探讨这两个运算符的...

    JS判断大全

    根据给定的文件标题、描述、标签以及部分内容,本文将详细介绍JavaScript中...以上就是基于提供的文件内容整理出的JavaScript判断和验证方法汇总。通过这些实用的技巧,可以有效地提高前端表单的用户体验和数据完整性。

    实例分析JS中的相等性判断===、 ==和Object.is()

    了解这些基本规则后,可以更准确地判断JavaScript中的值是否相等。在编写代码时,建议尽可能使用严格相等(===)以避免类型转换带来的意外结果,除非你明确知道类型转换的行为。对于特殊需求,如`NaN`的相等判断,...

    南京华信智原javascript中“==”和“===”区别完美版资料.ppt

    在JavaScript中,“==”和“===”是用来比较变量之间相等性的运算符,它们之间的主要区别在于类型转换和比较的严格性。 “==”(等同)运算符在比较时,如果两边的值类型不同,会尝试进行类型转换后再进行比较。...

    javascript中的相等操作符(==与===区别).docx

    ECMAScript提供了两种主要的相等操作符:“==”(相等)和“===”(全等),它们在逻辑判断和数据验证等方面发挥着重要作用。正确理解并使用这两种操作符对于编写高效且无误的代码至关重要。 #### 二、全等操作符...

    浅谈JS中的!=、== 、!==、===的用法和区别

    以下是`==`和`===`的一些具体规则: 1. `===`:如果类型不同,则不相等。如果类型相同,再比较值: - 如果都是数值,且值相同(除了NaN,NaN与任何值都不相等,包括自身),则相等。 - 如果都是字符串,且每个...

    js代码-003 面试题-a=? a==1&&a==2&&a==3 成立,==的转换规则

    这个运算符会进行类型转换,以尝试使两边的值可比较,然后再判断它们是否相等。这在解决一些面试题或者日常编码中可能会引发一些意想不到的结果。本话题将深入探讨`a==1&&a==2&&a==3`这样的表达式为何能成立,以及...

    JavaScript中的操作符==与===介绍

    详细的判断规则如下: ===操作符的判断规则 1.如果两个值的类型不一致,返回false。 2.如果两个值的类型一致,值一致,返回true。NaN是一个特例,NaN===NaN返回false。 3.如果两个值均为object类型,那么与Java一样...

    JAVA日期判断方法小结

    该方法使用了switch语句来判断月份,并根据闰年规则返回相应的天数。 3. 判断给定的日期是否为合法日期 判断给定的日期是否为合法日期是日期判断中的另一个重要方法。该方法可以使用以下代码实现: ```java ...

    js判断密码重复规则

    function test(obj){ var str=obj.value; if(validate(str)){ alert("合法的字符串!"); }else{ alert("非法的字符串!"); } } function validate(str){ var reg=/^\w{8,31}$/;...</html>

    编写JAVA程序,判断是否闰年,输出月份天数

    在Java编程中,闰年的判断是一个常见的练习,它涉及到日期和时间的概念。在这个程序中,我们首先需要了解闰年的规则: 1. 闰年规则:一个年份如果能被4整除但不能被100整除,或者能被400整除,那么这个年份就是闰年...

    jquery正则表达式插件

    * 功能:判断字符串是否符合正则表达式规则 * * -范例--------------------------------------------------- * var abc = "127.0.0.1"; * if(abc.match($.regexp('ip')){alert("abc是ip地址格式!"&#...

    Java判断文件的编码

    - 循环中根据UTF-8的编码规则,检查是否有不合法的字节序列出现。 4. **异常处理**: - 如果在读取过程中发生异常,则打印堆栈跟踪信息。 #### 总结 以上介绍的是一个较为简单的文件编码检测方法,它主要针对...

    C#绘制不规则button

    本篇文章将详细介绍如何利用C#结合`System.Drawing.Drawing2D`命名空间中的类和方法来实现不规则形状的Button。这将为您的应用程序界面带来更丰富的视觉效果和交互体验。 #### 二、准备工作 1. **环境搭建**:确保...

    js判断用户名密码实现登录

    本文将深入探讨如何使用JavaScript来判断用户名和密码,以实现一个基本的登录系统。 首先,我们需要理解HTML(超文本标记语言)用于构建网页的结构,CSS(层叠样式表)用于美化页面布局,而JavaScript则是连接这...

    java 小程序,求素数和判断闰年

    根据公历规则,闰年的判断标准如下: 1. 能被4整除但不能被100整除,或者 2. 能被400整除。 例如,2000年和2024年是闰年,而1900年则不是。以下是一个Java函数,用于判断年份是否为闰年: ```java public boolean ...

    JAVA闰年的判断

    在编程领域,闰年的判断是一个常见的任务,尤其是在处理日期和时间相关的算法时。闰年是公历中的特殊年份,为了保持日历年与地球公转周期的同步,每四年会额外增加一天,即2月29日。这个规则最早由罗马皇帝凯撒大帝...

Global site tag (gtag.js) - Google Analytics