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 相关文章推荐
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
Nov 05 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
May 05 Javascript
js比较日期大小的方法
May 12 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
纯js模拟div层弹性运动的方法
Jul 27 Javascript
jquery实现二级导航下拉菜单效果
Dec 18 Javascript
零基础轻松学JavaScript闭包
Dec 30 Javascript
基于LayUI实现前端分页功能的方法
Jul 22 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
Jun 10 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
vue 实现图片懒加载功能
Dec 31 Vue.js
JavaScript最完整的深浅拷贝实现方式详解
Feb 28 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
php创建多级目录的方法
2015/03/24 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
laravel自定义分页的实现案例offset()和limit()
2019/10/15 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
PHP 图片处理
2020/09/16 PHP
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
js数组操作常用方法
2014/05/08 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
Javascript之Math对象详解
2016/06/07 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
python matlibplot绘制3D图形
2018/07/02 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python3.8下载及安装步骤详解
2020/01/15 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
留学推荐信怎么写
2014/01/25 职场文书
运动会解说词100字
2014/01/31 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
通知书大全
2015/04/27 职场文书
中秋节随笔
2015/08/15 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
PO模式在selenium自动化测试框架的优势
2022/03/20 Python
centos7安装mysql5.7经验记录
2022/05/02 Servers