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 语法集锦 脚本之家基础推荐
Nov 15 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
单击复制文字兼容各浏览器的完美解决方案
Jul 04 Javascript
JS和Jquery获取和修改label的值的示例代码
Jan 15 Javascript
JavaScript整除运算函数ceil和floor的区别分析
Apr 14 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 Javascript
微信开发 消息推送实现代码
Oct 21 Javascript
微信小程序 石头剪刀布实例代码
Jan 04 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
在vue中使用css modules替代scroped的方法
Mar 10 Javascript
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
Node.js API详解之 V8模块用法实例分析
Jun 05 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
php中如何执行linux命令详解
2018/11/06 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
js封装的textarea操作方法集合(兼容很好)
2010/11/16 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
canvas 画布在主流浏览器中的尺寸限制详细介绍
2016/12/15 Javascript
简单实现js点击展开二级菜单功能
2017/05/16 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
Vue 莹石摄像头直播视频实例代码
2018/08/31 Javascript
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
解决layui的table插件无法多层级获取json数据的问题
2019/09/19 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
Python的净值数据接口调用示例分享
2016/03/15 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
ET Mall东森购物网:东森严选
2017/03/06 全球购物
小学生新年寄语
2014/04/03 职场文书
演讲稿的写法
2014/05/19 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
python 破解加密zip文件的密码
2021/04/22 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python