javascript等号运算符使用详解


Posted in Javascript onApril 16, 2015

本章节介绍一下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 相关文章推荐
javascript 模式设计之工厂模式详细说明
May 10 Javascript
jquery阻止冒泡事件使用模拟事件
Sep 06 Javascript
jquery与js函数冲突的两种解决方法
Sep 09 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
Jan 29 Javascript
JavaScript 经典实例日常收集整理(常用经典)
Mar 30 Javascript
AngulerJS学习之按需动态加载文件
Feb 13 Javascript
原生js实现简单的Ripple按钮实例代码
Mar 24 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
Feb 24 jQuery
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
p5.js临摹动态图形实现方法详解
Oct 23 Javascript
解决Nuxt使用axios跨域问题
Jul 06 Javascript
php常见的页面跳转方法汇总
Apr 15 #Javascript
jquery图片切换实例分析
Apr 15 #Javascript
JavaScript实现的encode64加密算法实例分析
Apr 15 #Javascript
JavaScript实现拖拽网页内元素的方法
Apr 15 #Javascript
jQuery+html5实现div弹出层并遮罩背景
Apr 15 #Javascript
jquery实现简单的无缝滚动
Apr 15 #Javascript
JQuery CheckBox(复选框)操作方法汇总
Apr 15 #Javascript
You might like
php抓取https的内容的代码
2010/04/06 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
PHP时间函数使用详解
2019/03/21 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
IE8 浏览器Cookie的处理
2009/01/31 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
在vue项目中使用sass的配置方法
2018/03/20 Javascript
webpack4 处理SCSS的方法示例
2018/09/03 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
AUC计算方法与Python实现代码
2020/02/28 Python
Python 自由定制表格的实现示例
2020/03/20 Python
python redis存入字典序列化存储教程
2020/07/16 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
卫生巾广告词
2014/03/18 职场文书
关于保护环境的建议书
2014/05/13 职场文书
学习三严三实心得体会
2014/10/13 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
分享提高 Python 代码的可读性的技巧
2022/03/03 Python
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android
Python first-order-model实现让照片动起来
2022/06/25 Python