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 相关文章推荐
Jquery中getJSON在asp.net中的使用说明
Mar 10 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
Feb 10 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
Jul 17 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
Mar 05 Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
Nov 05 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
Jul 09 Javascript
Vue上传组件vue Simple Uploader的用法示例
Aug 25 Javascript
AngularJS中重新加载当前路由页面的方法
Mar 09 Javascript
微信小程序 textarea 层级过高问题简单解决方案
Oct 14 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
Nov 04 Javascript
JavaScript实现京东快递单号查询
Nov 30 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
自己做矿石收音机
2021/03/02 无线电
php简单的会话类代码
2011/08/08 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
php表单处理操作
2017/11/16 PHP
php递归函数怎么用才有效
2018/02/24 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
Javascript中的delete介绍
2012/09/02 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
python反扒机制的5种解决方法
2021/02/06 Python
HTML5 离线应用之打造零请求、无流量网站的解决方法
2013/04/25 HTML / CSS
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
行政人员工作职责
2013/12/05 职场文书
教堂婚礼主持词
2014/03/14 职场文书
2014年教师节活动总结
2014/08/29 职场文书
青年文明号汇报材料
2014/12/23 职场文书
机动车交通事故协议书
2015/01/29 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
基于Android10渲染Surface的创建过程
2022/08/14 Java/Android