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 相关文章推荐
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
Apr 01 Javascript
『jQuery』名称冲突使用noConflict方法解决
Apr 22 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
Jan 16 Javascript
jquery实现页面关键词高亮显示的方法
Mar 12 Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 Javascript
js实现文字无缝向上滚动
Feb 16 Javascript
jquery.validate.js 多个相同name的处理方式
Jul 10 jQuery
详解express与koa中间件模式对比
Aug 07 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
Sep 26 jQuery
深入浅析javascript函数中with
Oct 28 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
Dec 04 Javascript
vue中使用v-for时为什么不能用index作为key
Apr 04 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
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
php设计模式之观察者模式的应用详解
2013/05/21 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
python自动安装pip
2014/04/24 Python
Python中的zip函数使用示例
2015/01/29 Python
Python 实现随机数详解及实例代码
2017/04/15 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
基于python实现把图片转换成素描
2019/11/13 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
"序列点" 是什么
2016/07/29 面试题
史上最全面的Java面试题汇总!
2015/02/03 面试题
大学生简历的个人自我评价
2013/12/04 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL