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 相关文章推荐
js 页面关闭前的出现提示的实现代码
May 25 Javascript
基于KMP算法JavaScript的实现方法分析
May 03 Javascript
页面加载完毕后滚动条自动滚动一定位置
Feb 20 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
Jun 16 Javascript
关于JavaScript限制字数的输入框的那些事
Aug 14 Javascript
js通过classname来获取元素的方法
Nov 24 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
详解小程序设置缓存并且不覆盖原有数据
Apr 15 Javascript
微信小程序实现批量倒计时功能
Nov 01 Javascript
微信小程序实现点击效果
Jun 21 Javascript
vue实现简单数据双向绑定
Apr 28 Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
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 mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
浅谈php扩展imagick
2014/06/02 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
node结合swig渲染摸板的方法
2018/04/11 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
如何优雅地在Node应用中进行错误异常处理
2019/11/25 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
在Python中使用异步Socket编程性能测试
2014/06/25 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
Python+matplotlib绘制不同大小和颜色散点图实例
2018/01/19 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
2019/12/10 Python
python爬虫模块URL管理器模块用法解析
2020/02/03 Python
Python Json数据文件操作原理解析
2020/05/09 Python
浅析python实现动态规划背包问题
2020/12/31 Python
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
艺术应用与设计专业个人的自我评价
2013/11/19 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
党的群众路线教育实践活动个人对照检查材料范文
2014/09/25 职场文书
教代会闭幕词
2015/01/28 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
详解python字符串驻留技术
2021/05/21 Python
Android存储中最基本的文件存储方式
2022/04/30 Java/Android