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 相关文章推荐
菜单效果
Oct 14 Javascript
JQuery 动画卷页 返回顶部 动画特效(兼容Chrome)
Feb 15 Javascript
javascript简易缓动插件(源码打包)
Feb 16 Javascript
jquery实现鼠标悬浮停止轮播特效
Aug 20 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
Mar 01 Javascript
laravel5.4+vue+element简单搭建的示例代码
Aug 29 Javascript
iframe高度自适应及隐藏滚动条的实例详解
Sep 29 Javascript
理解 JavaScript EventEmitter
Mar 29 Javascript
详解angular2.x创建项目入门指令
Oct 11 Javascript
利用原生的JavaScript实现简单拼图游戏
Nov 18 Javascript
node.js制作一个简单的登录拦截器
Feb 10 Javascript
Vue3实现简易音乐播放器组件
Aug 14 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中取得URL的根域名的代码
2011/03/23 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
[16:21]教你分分钟做大人:圣堂刺客
2014/12/03 DOTA
Python OS模块常用函数说明
2015/05/23 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
django云端留言板实例详解
2019/07/22 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python 并发下载器实现方法示例
2019/11/22 Python
彪马英国官网:PUMA英国
2019/02/11 全球购物
母亲节感恩寄语
2014/02/21 职场文书
人力资源主管职责范本
2014/03/05 职场文书
继承公证书样本
2014/04/04 职场文书
公司晚会策划方案
2014/05/17 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书