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 相关文章推荐
javascript实现仿银行密码输入框效果的代码
Dec 13 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
Sep 22 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
Oct 22 Javascript
jquery实现文本框数量加减功能的例子分享
May 10 Javascript
jquery插件推荐浏览器嗅探userAgent
Nov 09 Javascript
有关jQuery中parent()和siblings()的小问题
Jun 01 Javascript
vue bootstrap小例子一枚
Jun 09 Javascript
jQuery实现的点击按钮改变样式功能示例
Jul 21 jQuery
微信小程序bindtap事件与冒泡阻止详解
Aug 08 Javascript
如何基于JavaScript判断图片是否加载完成
Dec 28 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
Mar 23 Javascript
解析原生JS getComputedStyle
May 25 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 Oauth授权和本地加密实现方法
2016/08/12 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
PHP实现微信对账单处理
2018/10/01 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
在多个页面使用同一个HTML片段《续》
2011/03/04 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
jQuery获取及设置表单input各种类型值的方法小结
2016/05/24 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
JS常用函数和常用技巧小结
2016/10/15 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
python基于pygame实现响应游戏中事件的方法(附源码)
2015/11/11 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
python爬取m3u8连接的视频
2018/02/28 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
考博专家推荐信模板
2013/12/02 职场文书
机械设计职业生涯规划书
2013/12/27 职场文书
小学庆六一活动总结
2014/08/28 职场文书
政风行风评议整改方案
2014/09/15 职场文书
工作所在部门证明
2014/09/21 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server
一条慢SQL语句引发的改造之路
2022/03/16 MySQL
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL