javascript等号运算符使用详解

 更新时间:2015年04月16日 08:49:02   投稿:hebedich  
在JavaScript中,等号由双等号(==)表示,当且仅当两个运算数相等时,它返回true。今天我们就来详细探讨下等号运算符的问题,并附上等号运算符和全等号运算符的区别分析。

本章节介绍一下javascript中等号运算符的用法,需要的朋友可以做一下参考。

等号运算符最为基本的用法就是比较两个运算数是否相等,看如下代码实例:

复制代码 代码如下:

var a=2,b=2;
console.log(a==b);

如果两个操作数相等,那么返回值就是true,否则返回false。
上面是最为基本的用法,下面再来介绍一下它相对比较特殊的几种情况。

复制代码 代码如下:

var str="5";
var num=5;
console.log(str==num);

上面的代码返回值是true。

不少朋友可能会有疑问,一个是字符串,一个是数值类型,怎么返回值是true,当然这在c#或者java肯定是错误的,但是在js中这一切都不是问题,会进行隐式数据类型转换,字符串会尝试转换为数字。
再来看一段代码实例:

复制代码 代码如下:

console.log(true==1);

上面的代码也会返回true,因为true也会进行隐式转换,它将会被转换为1,false将会被转换为false。
下面再看一段代码实例:

复制代码 代码如下:

var obj={
  valueOf:function(){return 10}
}
console.log(obj==10);

一个对象竟然可以和一个数字直接量比较大小,并且返回值是true。
这是因为对象会首先调用valueOf()方法,如果没有此方法则尝试调用toString()方法。

javascript的两个等号和三个等号的区别:

在javascript代码经常看到三个等号和两个等号的使用,下面就介绍一下它们两者的区别是什么。
代码实例:
实例一:

复制代码 代码如下:

console.log(0=="");
console.log(0==false);
console.log(""==false);

实例二:

复制代码 代码如下:

console.log(0==="");
console.log(0===false);
console.log(""===false);

上面你的代码演示了两个运算符的,下面介绍一下它们两者的区别。

三个等号全等运算符:

既然是全等运算符,那么两个运算数必须完全一样才能够相等,具体比较规则如下:

1.如果两个操作是值类型,那么两个操作数必须完全相等才会相等。
2.如果是引用类型,两个操作数必须指向同一个对象才会相等。

两个等号运算符:

这个运算符比较博爱一些,在比较的时候如果两个操作数的类型不同,会进行类型转换,具体规则如下:

1.如果是数据类型相同的值类型,那么比较规则和全等运算符相同。
2.如果两个操作数类型相同,那么它们也是有可能相同的:
a:如果一个是null、一个是undefined,那么两个是相同的。
b:如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c:如果任一值是true,把它转换成1再比较,如果任一值是false,把它转换成0再比较。
d:如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。

以上就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • Javascript HTML5 Canvas实现的一个画板

    Javascript HTML5 Canvas实现的一个画板

    这篇文章主要为大家详细介绍了Javascript HTML5 Canvas实现的一个画板的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 无缝滚动的简单实现代码(推荐)

    无缝滚动的简单实现代码(推荐)

    下面小编就为大家带来一篇无缝滚动的简单实现代码(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 学习JSON.stringify的9大特性和转换规则

    学习JSON.stringify的9大特性和转换规则

    本文介绍JSON.stringify9大特性和转换规则,JSON.stringify()方法将一个JavaScript对象或值转换为 JSON 字符串,如果指定了一个replacer 函数,则可以选择性地替换值,或者指定的replacer是数组,则可选择性地仅包含数组指定的属性,更多内容需要的小火煸可以参考下面温行内容
    2022-02-02
  • 基于JavaScript实现熔岩灯效果导航菜单

    基于JavaScript实现熔岩灯效果导航菜单

    这篇文章主要介绍了基于JavaScript实现熔岩灯效果导航菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • javascript 45种缓动效果 非常酷

    javascript 45种缓动效果 非常酷

    javascript 45种缓动效果 非常酷,喜欢的朋友运行下看下效果。
    2011-06-06
  • JS实现单例模式的N种方案

    JS实现单例模式的N种方案

    JS实现单例模式的多种方案 ,本文稍加总结,列出了6种方式与大家分享,大体上将内容分为了ES5(Function)与ES6(Class)实现两种部分,对js单例模式相关知识感兴趣的朋友跟随小编一起看看吧
    2022-09-09
  • 原生js实现表单的正则验证(验证通过后才可提交)

    原生js实现表单的正则验证(验证通过后才可提交)

    这篇文章主要给大家介绍了关于如何利用原生js实现表单的正则验证,所有验证都通过后提交按钮才可用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 仿京东快报向上滚动的实例

    仿京东快报向上滚动的实例

    下面小编就为大家分享一篇仿京东快报向上滚动的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Javascript获取图片原始宽度和高度的方法详解

    Javascript获取图片原始宽度和高度的方法详解

    这篇文章用实例代码讲述了JavaScript如何获取页面图片原始尺寸的方法,现在分享给大家供大家参考学习,有需要的可以一起来看看。
    2016-09-09
  • JS模仿MSN右下角弹出提示框代码

    JS模仿MSN右下角弹出提示框代码

    JS模仿MSN右下角弹出提示框代码,需要的朋友可以参考下。
    2010-09-09

最新评论