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 相关文章推荐
由document.body和document.documentElement想到的
Apr 13 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
May 17 Javascript
javascript 防止刷新,后退,关闭
Aug 07 Javascript
jQuery 调用WebService 实例讲解
Jun 28 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
Aug 08 Javascript
js实现碰撞检测特效代码分享
Oct 16 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
Jan 17 Javascript
JS实现的简单四则运算计算器功能示例
Sep 27 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
Jan 08 Javascript
React生命周期原理与用法踩坑笔记
Apr 28 Javascript
js+audio实现音乐播放器
Sep 13 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语法(4)
2006/10/09 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
2016/09/26 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
Javascript 对象的解释
2008/11/24 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
2012/12/04 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
NodeJS实现不可逆加密与密码密文保存的方法
2018/03/16 NodeJs
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
python装饰器实例大详解
2017/10/25 Python
彻底搞懂Python字符编码
2018/01/23 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
详解Python sys.argv使用方法
2019/05/10 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
如何用Python来理一理红楼梦里的那些关系
2019/08/14 Python
Python datetime包函数简单介绍
2019/08/28 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
详解Python中的路径问题
2020/09/02 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
建筑学推荐信
2013/11/03 职场文书
电子专业推荐信范文
2013/11/18 职场文书
推荐信格式要求
2014/05/09 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
辞职信如何写
2015/02/27 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书
导游词之南京夫子庙
2019/12/09 职场文书