js 操作符汇总


Posted in Javascript onNovember 08, 2014

逻辑或(||)

var result = true || false;
与逻辑与操作相似,如果有一个操作数不是布尔值,逻辑或也不一定返回布尔值;此时,它遵循下列规则:
□ 如果第一个操作数是对象,则返回第一个操作数。

□ 如果第一个操作数求值为false,则返回第二个操作数。

□ 如果两个操作数都是对象,则返回第一个操作数。

□ 如果两个操作数都是null,返回null

□ 如果两都为undefined,返undefined。

□ 如果两都为NaN,返NaN

“===”与“==”的区别

相等操作符(==)

相等操作符会对操作值进行隐式转换后进行比较:

如果一个操作值为布尔值,则在比较之前先将其转换为数值
如果一个操作值为字符串,另一个操作值为数值,则通过Number()函数将字符串转换为数值
如果一个操作值是对象,另一个不是,则调用对象的valueOf()方法,得到的结果按照前面的规则进行比较
null与undefined是相等的
如果一个操作值为NaN,则相等比较返回false
如果两个操作值都是对象,则比较它们是不是指向同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true,否则,返回false
下面分别说明:
先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等:
1、如果类型不同,就[不相等]
2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)的是,如果其中至少一个是NaN,那么[不相等]。(判断一个值是否是NaN,只能用isNaN()来判断)
3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。
4、如果两个值都是true,或者都是false,那么[相等]。
5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。
6、如果两个值都是null,或者都是undefined,那么[相等]。

再说 ==,根据以下规则:
1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。js核心内置类,会尝试valueOf先于toString;例外的是Date,Date利用的是toString转换。非js核心的对象,令说(比较麻烦,我也不大懂)
e、任何其他组合,都[不相等]。

表达式 值 表达式 值
null==undefined true true==1 true
"NaN" ==NaN false $null==0 false
false==0 true NaN!=NaN true
简而言之就是“==”只要求值相等。“===”要求值和类型都相等。

资料来源于javascript高级程序设计,整理下,后续更新js 操作符汇总

Javascript 相关文章推荐
判断JavaScript对象是否可用的最正确方法分析
Oct 03 Javascript
IE与Firefox在JavaScript上的7个不同写法小结
Sep 14 Javascript
悬浮数字的实现案例
Feb 19 Javascript
JS操作HTML自定义属性的方法
Feb 10 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
jQuery内容过滤选择器用法示例
Sep 09 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
jquery文字填写自动高度的实现方法
Nov 07 Javascript
小程序云开发实现数据库异步操作同步化
May 18 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
Nov 10 Javascript
jquery的总体架构分析及实现示例详解
Nov 08 #Javascript
jquery常用方法及使用示例汇总
Nov 08 #Javascript
JQuery遍历json数组的3种方法
Nov 08 #Javascript
JQuery中使用.each()遍历元素学习笔记
Nov 08 #Javascript
jQuery遍历之next()、nextAll()方法使用实例
Nov 08 #Javascript
jQuery遍历对象、数组、集合实例
Nov 08 #Javascript
JavaScript中具名函数的多种调用方式总结
Nov 08 #Javascript
You might like
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
php中file_get_contents()函数用法实例
2019/02/21 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
javascript每日必学之多态
2016/02/23 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
jQuery通用的全局遍历方法$.each()用法实例
2016/07/04 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
修改node.js默认的npm安装目录实例
2018/05/15 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python 快速排序代码
2009/11/23 Python
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
Python常用数据分析模块原理解析
2020/07/20 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
求高于平均分的学生学号及成绩
2016/09/01 面试题
小学生安全保证书
2014/02/01 职场文书
中学生寄语大全
2014/04/03 职场文书
个人租房协议书样本
2014/10/01 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
文艺晚会开场白
2015/05/29 职场文书
党支部培养考察意见
2015/06/02 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers