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的多个选择器的使用示例
Oct 18 Javascript
jquery实现html页面 div 假分页有原理有代码
Sep 06 Javascript
浅谈jQuery.easyui的datebox格式化时间
Jun 25 Javascript
JS正则表达式验证密码格式的集中情况总结
Feb 23 Javascript
ES6学习教程之模板字符串详解
Oct 09 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
May 26 jQuery
Vue中JS动画与Velocity.js的结合使用
Feb 13 Javascript
node(koa2) web应用模块介绍详解
Mar 29 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
Jul 05 Javascript
react-router-dom 嵌套路由的实现
May 02 Javascript
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
在JavaScript中查找字符串中最长单词的三种方法(推荐)
Jan 18 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/06 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP防盗链代码实例
2014/08/27 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
webpack多页面开发实践
2017/12/18 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
在nodejs中创建child process的方法
2021/01/26 NodeJs
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
智能钱包:Ekster
2019/11/21 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
创业者是否需要商业计划书?
2014/02/07 职场文书
请假条标准格式规范
2014/04/10 职场文书
大学生,三分钟即兴演讲稿
2019/07/22 职场文书
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
vue实现拖拽交换位置
2022/04/07 Vue.js