JavaScript-比较运算符
一、概述
>大于运算符<小于运算符<=小于或者等于运算符>=大于或者等于运算符==相等运算符===严格相等运算符!=不相等运算符!==严格不相等运算符
二、非相等运算符:字符串的比较
先从第一个字符开始比较,比较依据(Unicode的大小)
"cat" > "dog"; // false
三、非相等运算符:非字符串的比较
如果两个运算子之中,至少有一个不是字符串,需要分成以下两种情况
原始类型值:两个都是原始类型的值,则先转为数值再比较
5 > '4' // true
// 等同于 5 > Number('4')
// 即 5 > 4 true > false // true
// 等同于 Number(true) > Number(false)
// 即 1 > 0 2 > true // true
// 等同于 2 > Number(true)
// 即 2 > 1
对象:如果运算子是对象,会转为原始类型的值,再进行比较。
四、严格相等运算符
==:比较两个值是否相等===: 比较两个值是否相等。通过是同一类型数据,就是True,如果不是返回false
NAN == NAN; // false
[] === []; // false
{} === {}; // false
-----------------------
null === null; // true
undefined === undefined; // true
五、严格不相等运算符
它的算法就是先要求严格相等运算符的结果,然后返回相反值
1 !== "1"; // true
六、相等运算符
同类型的数据做比较的话,就不需要进行转换
原始类型值,转换为数值类型再进行比较
1 == true // true
// 等同于 1 === Number(true) 0 == false // true
// 等同于 0 === Number(false) 2 == true // false
// 等同于 2 === Number(true) 2 == false // false
// 等同于 2 === Number(false) 'true' == true // false
// 等同于 Number('true') === Number(true)
// 等同于 NaN === 1 '' == 0 // true
// 等同于 Number('') === 0
// 等同于 0 === 0 '' == false // true
// 等同于 Number('') === Number(false)
// 等同于 0 === 0 '1' == true // true
// 等同于 Number('1') === Number(true)
// 等同于 1 === 1 '\n 123 \t' == 123 // true
// 因为字符串转为数字时,省略前置和后置的空格
对象与原始类型值比较:将对象转换为原始类型值再比较
// 对象与数值比较时,对象转为数值
[1] == 1 // true
// 等同于 Number([1]) == 1 // 对象与字符串比较时,对象转为字符串
[1] == '1' // true
// 等同于 String([1]) == '1'
[1, 2] == '1,2' // true
// 等同于 String([1, 2]) == '1,2' // 对象与布尔值比较时,两边都转为数值
[1] == true // true
// 等同于 Number([1]) == Number(true)
[2] == true // false
// 等同于 Number([2]) == Number(true)
null,undefied
null == undefied; // true
七、不相等运算符
它的算法就是先求相等运算符的结果,再取相反值。
JavaScript-比较运算符的更多相关文章
- JavaScript instanceof 运算符深入剖析
简介: 随着 web 的发展,越来越多的产品功能都放在前端进行实现,增强用户体验.而前端开发的主要语言则是 JavaScript.学好 JavaScript 对开发前端应用已经越来越重要.在开发复杂产 ...
- javascript算术运算符详解
算术运算符 +.-.*./.%.++.-- ++.--分为前缀形式和后缀形式 前缀形式先加减1在执行 后缀形式先执行再加减1 注意 +号用来连接两个字符串 只要+连接的操作数中有一个是字符串型,JS就 ...
- JavaScript instanceof 运算符深入剖析【转载】
http://www.ibm.com/developerworks/cn/web/1306_jiangjj_jsinstanceof/ instanceof 运算符简介 在 JavaScript ...
- JavaScript instanceof 运算符
instanceof运算符简介 在 JavaScript 中 判断一个变量的类型常常会用 typeof 运算符 判断一个实例是否属于某种类型会使用instanceof 与 typeof 方法不同的是, ...
- (4)javascript的运算符以及运算符的优先级
运算符的使用方法 在javascript的程序中要完成各种各样的运算,是离不开运算符的. 在javascript中,按运算符类型可以分为 ...
- javaScript常用运算符和操作符总结
javaScript常用运算符和操作符总结 类别 操作符 算术操作符 +. –. *. /. %(取模) 字符串操作符 + 字符串连接 +=字符串连接复合 布尔操作符 !. &&. ...
- javascript(六)运算符
运算符概述 JavaScript中的运算符用于算术表达式. 比较表达式. 逻辑表达式. 赋值表达式等.需要注意的是, 大多数运算符都是由标点符号表示的, 比如 "+" 和" ...
- JavaScript 算术运算符
处理数值的典型情景是数值计算. ㈠JavaScript 算术运算符 算术运算符对数值(文字或变量)执行算术运算. ㈡算术运算符 典型的算术运算会操作两个数值. ⑴这两个数可以是字面量: var x = ...
- JavaScript多元运算符
JavaScript多元运算符 JavaScript多元运算符 **实例:**` function test(9){ var a=4,b=11; return p > 1 ? p<b ...
- javascript中运算符的优先级
运算符优先级 JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低 ...
随机推荐
- Python-正则表达式实现计算器功能
需求: 用户输入运算表达式,终端显示计算结果 源代码: # !/usr/bin/env/ python3 # -*- coding: utf-8 -*- """用户输入计 ...
- Spark企业级应用开发和调优
1.Spark企业级应用开发和调优 Spark项目编程优化历程记录,主要介绍了Spark企业级别的开发过程中面临的问题和调优方法.包含合理分配分片,避免计算中间结果(大数据量)的collect,合理使 ...
- 关于建立Android工程R文件丢失的问题
今天开始学习Android了,好久没打开eclipse,建立Android工程老是报错,于是手残的把appcompat-v7给删了,然后建立工程以后重新出来的appcompat-v7有个小叉号,百度了 ...
- Redux学习笔记--异步Action和Middleware
异步Action 之前介绍的都是同步操作,Redux通过分发action处理state,所有的数据流都是同步的,如果需要一步的话怎么办? 最简单的方式就是使用同步的方式来异步,将原来同步时一个acti ...
- 微信小程序——代码构成
通过上一章讲解,我们了解到如何初始化一个小程序项目,这里是官方给到demo地址,通过demo来看教程更方便于我们理解项目架构. 由四种文件构成: .json 后缀的 JSON 配置文件 .wxml 后 ...
- How to alter department in PMS system
question:How to alter department in PMS system 1.Use generally method modified department: update e ...
- DedeCms织梦后台管理员密码修改和忘记重置方法
方法/步骤 打开dede_admin数据表: 进入你的MYSQL后台,然后在你的数据库名中,找到dede_admin这项如图,pwd下的值就是你的密码,织梦密码采取的是MD5加密,破解麻烦而且没有必要 ...
- TaskScheduler内幕天机解密:Spark shell案例运行日志详解、TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详解等
本课主题 通过 Spark-shell 窥探程序运行时的状况 TaskScheduler 与 SchedulerBackend 之间的关系 FIFO 与 FAIR 两种调度模式彻底解密 Task 数据 ...
- 为什么要使用base64编码,有哪些情景需求?
Base64编码原理与应用 Java实现BASE64编解码 公钥证书也好,电子邮件数据也好,经常要用到Base64编码,那么为什么要作一下这样的编码呢? 我们知道在计算机中任何数据都是按ascii码存 ...
- hdu5194 DZY Loves Balls 【概率论 or 搜索】
//yy:那天考完概率论,上网无聊搜个期望可加性就搜到这题,看到以后特别有亲和感,挺有意思的. hdu5194 DZY Loves Balls [概率论 or 搜索] 题意: 一个盒子里有n个黑球和m ...