JavaScript中的操作符==与===介绍


Posted in Javascript onDecember 31, 2014

JavaScript中,==与===操作符均可用于判断两个值是否相等;不同之处在于,如果进行判断的两个值类型不一致,===操作符会直接返回false,而==操作符则会在类型转换后再进行判断。详细的判断规则如下:

===操作符的判断规则

1.如果两个值的类型不一致,返回false。
2.如果两个值的类型一致,值一致,返回true。NaN是一个特例,NaN===NaN返回false。
3.如果两个值均为object类型,那么与Java一样,除非两者引用一致(reference指向同一个对象地址),不然即使object中的内容完全一样,也认为这两个值不一致,相应的操作将返回false。比如,新建两个内容完全一样的数组,对它们进行===操作后返回结果为false — 虽然它们的内容完全一样,但还是属于两个不同的对象。
4.0===-0返回true。

==操作符的判断规则

==操作符会将值进行类型转换后再进行比较,其类型转换遵循以下原则:优先转换成number后进行比较,Date对象则优先转换成string后进行比较。具体判断规则如下:

1.如果两个值类型一致,执行===操作后返回。
2.null==undefined为true。
3.true将转换成1后进行比较,false将转换成0后进行比较。
4.如果其中一个值为对象,则将其转换成number后再进行比较,Date对象除外。
5.如果其中一个值为Date对象,则将其转换成string后再进行比较。

实验

console.log("3" === 3);//false

console.log(NaN === NaN);//false

var a = {x:1, y:2};

var b = {x:1, y:2};

var c = a;

console.log(a === b);//false

console.log(a === c);//true

console.log(0 === -0);//true
console.log("3" == 3);//true

console.log(null == undefined);//true

console.log(true == 1);//true

console.log(true == 9);//false
console.log([9] == 9);//true

console.log([9] == "9");//true
var d = new Date();

var s = d.toString();

var n = d.valueOf();

console.log(d == s);//true

console.log(d == n);//false
Javascript 相关文章推荐
firefo xml 读写实现js代码
Jun 11 Javascript
javascript 二分法(数组array)
Apr 24 Javascript
新鲜出炉的js tips提示效果
Apr 03 Javascript
javascript学习笔记(七) js函数介绍
Jun 19 Javascript
使用原生js实现页面蒙灰(mask)效果示例代码
Jun 20 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
js实现定时进度条完成后切换图片
Jan 04 Javascript
Angular2 父子组件数据通信实例
Jun 22 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
Aug 10 Javascript
React Native react-navigation 导航使用详解
Dec 01 Javascript
vue.js实现会动的简历(包含底部导航功能,编辑功能)
Apr 08 Javascript
原生JS实现烟花效果
Mar 10 Javascript
jQuery中[attribute]选择器用法实例
Dec 31 #Javascript
JavaScript中的比较操作符>、=、
Dec 31 #Javascript
javascript 操作符(~、&、|、^、)使用案例
Dec 31 #Javascript
JavaScript中的逻辑判断符&&、||与!介绍
Dec 31 #Javascript
JavaScript中的eval()函数使用介绍
Dec 31 #Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
Dec 31 #Javascript
JavaScript中的异常捕捉介绍
Dec 31 #Javascript
You might like
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
php中strtotime函数性能分析
2016/11/20 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
Python字符串处理实例详解
2017/05/18 Python
python 动态加载的实现方法
2017/12/22 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
python按比例随机切分数据的实现
2019/07/11 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
python 图像插值 最近邻、双线性、双三次实例
2020/07/05 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
python的数学算法函数及公式用法
2020/11/18 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
PHP笔试题
2012/02/22 面试题
面料业务员岗位职责
2013/12/26 职场文书
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
暑假安全保证书
2015/02/28 职场文书
终止合同协议书范本
2016/03/22 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
Mysql实现主从配置和多主多从配置
2021/06/02 MySQL
k8s部署redis cluster集群的实现
2021/06/24 Redis
Pygame Event事件模块的详细示例
2021/11/17 Python