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 相关文章推荐
JQery jstree 大数据量问题解决方法
Mar 09 Javascript
extjs ColumnChart设置不同的颜色实现代码
May 17 Javascript
js 获取radio按钮值的实例
Aug 17 Javascript
js取消单选按钮选中并判断对象是否为空
Nov 14 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
Dec 19 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
Apr 15 Javascript
把Node.js程序加入服务实现随机启动
Jun 25 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 Javascript
this在vue和小程序中的使用详解
Jan 28 Javascript
vue.js实现图书管理功能
Sep 24 Javascript
微信小程序实现底部弹出框
Nov 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
中东人咖啡哲学
2021/03/03 咖啡文化
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
浅析IE10兼容性问题(frameset的cols属性)
2014/01/03 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
基于ajax和jsonp的原生封装(实例)
2017/10/16 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
vue中node_modules中第三方模块的修改使用详解
2019/05/31 Javascript
vue.js 实现a标签href里添加参数
2019/11/12 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
解决谷歌搜索技术文章时打不开网页问题的python脚本
2013/02/10 Python
学习python类方法与对象方法
2016/03/15 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
Python  Django 母版和继承解析
2019/08/09 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
C语言编程题
2015/03/09 面试题
大学生自我鉴定范文模板
2014/01/21 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
大学学风建设方案
2014/05/04 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
党的生日演讲稿
2014/09/10 职场文书
关于感恩的作文
2019/08/26 职场文书
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL