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批量修改PS中图层名称的方法
Jan 26 Javascript
JavaScript设计模式之装饰者模式介绍
Dec 28 Javascript
javascript将异步校验表单改写为同步表单
Jan 27 Javascript
jquery实现网站列表切换效果的2种方法
Aug 12 Javascript
Bootstrap Table使用心得总结
Nov 29 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
Dec 03 Javascript
基于javascript的异步编程实例详解
Apr 10 Javascript
详解Vue.js 2.0 如何使用axios
Apr 21 Javascript
angularjs路由传值$routeParams详解
Sep 05 Javascript
如何测量vue应用运行时的性能
Jun 21 Javascript
JavaScript解析JSON数据示例
Jul 16 Javascript
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
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 addslashes和mysql_real_escape_string
2010/01/24 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHP实现的数据对象映射模式详解
2019/03/20 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
Js日期选择器并自动加入到输入框中示例代码
2013/08/02 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
TensorFlow变量管理详解
2018/03/10 Python
python获取代理IP的实例分享
2018/05/07 Python
python将list转为matrix的方法
2018/12/12 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
浅析Python 抽象工厂模式的优缺点
2020/07/13 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
.NET面试问题集
2015/12/08 面试题
关于Java finally的面试题
2016/04/27 面试题
幼儿园大班家长评语
2014/04/17 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL