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下用eval生成JSON对象
Sep 17 Javascript
jquery 图片上传按比例预览插件集合
May 28 Javascript
Jquery 表格合并的问题分享
Sep 17 Javascript
Jquery实现$.fn.extend和$.extend函数
Apr 14 Javascript
jQuery中队列queue()函数的实例教程
May 03 Javascript
js Canvas实现圆形时钟教程
Sep 19 Javascript
Node.js复制文件的方法示例
Dec 29 Javascript
AngularJS Controller作用域
Jan 09 Javascript
JS使用setInterval实现的简单计时器功能示例
Apr 19 Javascript
详解AngularJS 过滤器的使用
Jun 02 Javascript
vue 监听屏幕高度的实例
Sep 05 Javascript
细说Vue组件的服务器端渲染的过程
May 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
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
开启PHP的伪静态模式
2015/12/31 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
JavaScript实现预览本地上传图片功能完整示例
2019/03/08 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
javascript 原型与原型链的理解及应用实例分析
2020/02/10 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
详解Django-channels 实现WebSocket实例
2019/08/22 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
Python ADF 单位根检验 如何查看结果的实现
2020/06/03 Python
python访问hdfs的操作
2020/06/06 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
科颜氏美国官网:Kiehl’s美国
2017/01/31 全球购物
社区志愿者心得体会
2014/01/03 职场文书
求职信内容怎么写
2014/05/26 职场文书
销售类求职信
2014/06/13 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
项目建议书
2015/02/04 职场文书
2015年售票员工作总结
2015/04/29 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python