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 14 Javascript
jquery改变tr背景色的示例代码
Dec 28 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
Mar 08 Javascript
解决VUEX刷新的时候出现数据消失
Jul 03 Javascript
SeaJS中use函数用法实例分析
Oct 10 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
Aug 13 Javascript
解决vue props 拿不到值的问题
Sep 11 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
Sep 28 Javascript
优化Vue项目编译文件大小的方法步骤
May 27 Javascript
js脚本中执行java后台代码方法解析
Oct 11 Javascript
vue里使用create, mounted调用方法
Apr 26 Vue.js
TS 类型兼容教程示例详解
Sep 23 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 和 MySQL 基础教程(三)
2006/10/09 PHP
一个简单的域名注册情况查询程序
2006/10/09 PHP
php表单转换textarea换行符的方法
2010/09/10 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
JS类的封装及实现代码
2009/12/02 Javascript
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
使用mint-ui开发项目的一些心得(分享)
2017/09/07 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
python dumps和loads区别详解
2020/02/04 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
写给老师的表扬信
2014/01/21 职场文书
棉花姑娘教学反思
2014/02/15 职场文书
《狮子和兔子》教学反思
2014/03/02 职场文书
关心下一代工作先进事迹
2014/08/15 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
2014年民警工作总结
2014/11/25 职场文书
春季运动会开幕词
2015/01/28 职场文书
党委工作总结2015
2015/04/27 职场文书
KTV员工管理制度
2015/08/06 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
python 详解turtle画爱心代码
2022/02/15 Python
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL