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

 更新时间:2013年10月23日 17:03:07   作者:  
一个等号就是个赋值的作用,主要问题在于两个跟三个等号的区别,想必有很多的朋友都不知道吧,在本文有个不错的示例主要介绍下两者到底有什么区别,感兴趣的朋友不要错过
一个等号就是个赋值的作用,主要问题在于两个跟三个等号的区别。
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数组等),都[不相等]。

当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及。

相关文章

  • 解读document.querySelector()方法

    解读document.querySelector()方法

    这篇文章主要介绍了document.querySelector()方法的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)

    「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)

    这篇文章主要介绍了JavaScript手写代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • JS和jquery获取各种屏幕的宽度和高度的代码

    JS和jquery获取各种屏幕的宽度和高度的代码

    这篇文章介绍了JS和jquery获取各种屏幕的宽度和高度的代码,有需要的朋友可以参考一下
    2013-08-08
  • ajax不执行success回调而是执行了error回调

    ajax不执行success回调而是执行了error回调

    最近在看jQuery的API文档,在使用到jQuery的ajax时,如果指定了dataType为json,老是不执行success回调,而是执行了error回调函数,极度郁闷
    2012-12-12
  • javascript流程控制语句集合

    javascript流程控制语句集合

    流程控制语句在JS中是至关重要的。JS中的流程控制语句包括if条件判断语句、for循环语句、while循环语句、do……while循环语句、break语句、continue语句和switch语句等7种语句,需要的朋友可以参考下
    2017-09-09
  • 探寻JavaScript中this指针指向

    探寻JavaScript中this指针指向

    JavaScript由于其在运行期进行绑定的特性,JavaScript 中的 this 可以是全局对象、当前对象或者任意对象,这完全取决于函数的调用方式。
    2016-04-04
  • 浅谈js的setInterval事件

    浅谈js的setInterval事件

    这篇文章主要介绍了js的setInterval方法的用法以及示例,非常的有用,这里推荐给小伙伴们
    2014-12-12
  • JavaScript初学者应注意的七个细节详细介绍

    JavaScript初学者应注意的七个细节详细介绍

    种种语言都有它特别的地方,对于JavaScript来说,使用var就可以声明任意类型的变量,这门脚本语言看起来很简单,然而想要写出优雅的代码却是需要不断积累经验的,接下来介绍初学者应注意
    2012-12-12
  • De facto standard 世界上不可思议的事实标准

    De facto standard 世界上不可思议的事实标准

    前些天IEBlog中提到实现互通并不是只靠标准就行,其中举出了一些关于事实上的标准的考虑——所谓“事实上的标准”,也就是并非标准,但大家都遵循着它去做事情的那么一种东西。
    2010-08-08

最新评论