js上 六、运算符-2
6.1.关系运算符
用来进行比较的。比较的结果通常是布尔值真和假。
ü ==:相等,只比较值是否相等
ü ===:全等,比较值的同时比较数据类型是否相等
ü !=:不相等,比较值是否不相等
ü !==:不全等,比较值的同时比较数据类型是否不相等
ü 返回值:boolean型
相等运算符,使用两个=表示。
要判断的是两个变量的值,是否相等,如果相等,返回真,否则返回假。

在使用==的时候,是不要考虑类型的,只要两个变量的值是相等,结果就相等。

如果我的需求是,既要保证值相等,还要保证变量的类型也是相等的,js为我们提供了一个绝对等于的运算符 ===

注意:
=、==和===之间的区别。
=表示赋值,==表示判断值是否相等,===表示判断绝对相等(值和类型)。

**! ** **= ** 和!==
!=是==的反操作,!==是===的反操作

在实际开发的时候,==、===和!=使用比较多。!==使用比较少。
>, >=, <, <=
和数学中的比较是一样的。

关系运算符的转换规则:
1) 全等运算符的规则:比较值同时比较类型
2) > < >= <= == !=
2-1、 一般情况下,进行比较时,都隐式转为number,然后进行比较;

2-2、 在相等运算符里,如果一端是null和undefined,不转换,直接比较。
即 null只有和undfined进行相等比较时为true,和其他任意内容进行比较都为false;
2-3、 比较运算符两端都是字符串时;按照字符串的方式进行比较
#6.2.逻辑运算符
在js中, 有如下三个逻辑运算符:
ü && 与
ü || 或
ü ! 非,取反
ü 假值:0 ,NaN,“”,null,undefined
#a.&&
逻辑与操作,表示并且的意思,AND,表示只有当两个或多个条件都同时满足的情况下,结果才为真。
以两个变量的操作为例,进行说明

运算规则如下:
| 表达式1 | 表达式2 | 结果 |
|---|---|---|
| true | true | true |
| true | false | false |
| false | true | false |
| false | false | false |
总结:
逻辑与找假值;遇到第一个假值就停下来,返回这个假的值;如果没有假值,则返回最后一个值;

#b.||
逻辑或,或者的意思,or。
对于多个条件,只要有一个满足条件,结果就为真,只有所有的条件都为假的时候,结果才为假。
以两个操作数为例进行说明
规则如下:
| 表达式1 | 表达式2 | 结果 |
|---|---|---|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
总结:
逻辑或找真值,如果遇到第一个真值,就将这个值返回,如果没有找到真值,返回最后一个;
#c.!
逻辑非,取反操作,not
!是一个一元运算符(单目),只有一个操作数。
规则如下:
| 表达式 | 结果 |
|---|---|
| true | false |
| false | true |

一元运算符的优先级要比二元和三元的都要高。
说明:
运算符规则:先将值隐式转为布尔类型,再取反;
返回值:返回值一定是布尔类型

关于短路运算的说明:
在&&和||运算时,如果第一个表达式的值就已经能够确定整个运算的结果,那么第二个表达式将不会执行。(类比于日常生活中的比赛,5局三胜,已经胜了三局,后面的比赛将不再进行)。
#6.3.三元运算符
在js中,有且仅有一个三元运算符,就是?:
格式:表达式1 ?表达式2:表达式3
运算规则:如果表达式1的值为真,那么结果就是表达式2,否则结果就是表达式3。

三元运算符,能够简化我们的代码,实际上相当于if...else语句。
?:的优先级比较低。
#作业
**v ** ar result = "hello" && 88 && null;
console.log(result); //
var result = 0 || 55 === '55' || 'hello';
console.log(result); //
console.log(!null) //
console.log("hello" || null && 3 - 3);
console.log(!null || undefined && !3 - '0');
console.log(6 - 6 || 4 > 2 && 3 * 2);
var a = 3,
b = "3",
c = 6,
d = a === b || (b < c && c > a);
console.log(d)
var a = "js",
b, c = !!a && !b;
console.log(c)
var x = "5",
y = 5,
z = "hello",
s = x == y && z;
console.log(s)
console.log(5 > "3")
console.log(5 <= undefined)
console.log(false > 4)
console.log(null <= "0")
console.log("21" < "4")
console.log("21" < "12")
console.log("24" < "26")
console.log("a" > "Z") a 97 b98 A 65 B 66
console.log("abc" < "bcd")
console.log(4 == 5)
console.log("4" == 4)
console.log("abc" == "ABC")
console.log(false == 0)
console.log(true == "true")
console.log(null == 0) //false
console.log(false == null)
console.log(null == undefined)
console.log(null == "")
console.log("" == 0)
console.log("4" === 4)
console.log(null === undefined)
console.log(null !== undefined) true
console.log(null == undefined)
console.log(null != undefined) false
#小结:
1.=== 、!== 再进行比较时,不转换直接比较
2.> 、<、>=、<= 、== 、!= 一般情况下转number再比较,注意特殊情况null在相等比较时,null==undefined为true;与其他任意值相等比较都为false
\3. && 与找真 ; || 或找假, ! 非先转布尔再取返
4.条件? 表达式1 : 表达式2; 条件为真时执行表达式1,为假执行表达式2
js上 六、运算符-2的更多相关文章
- js上 五、运算符-1
5.1.认识运算符 什么是运算符? 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算. 运算符的应用: 购物车:计算总价,数量: **Js ** 中有哪些运算符? 算术运算符.赋值运算符 ...
- 前端(十一)—— JavaScript基础:JS存在的位置、JS变量定义、调试方式、JS数据类型、运算符
JS存在的位置.JS变量定义.调试方式.JS数据类型.运算符 一.JS语言介绍 1.概念 浏览器脚本语言 可以编写运行在浏览器上的代码程序 属于解释性.弱语言类型编程语言 2.组成 ES语法:ECMA ...
- js 与或运算符 || && 妙用
js 与或运算符 || && 妙用,可用于精简代码,降低程序的可读性. 首先出个题: 如图: 假设对成长速度显示规定如下: 成长速度为5显示1个箭头: 成长速度为10显示2个箭头: ...
- js中的运算符和条件语句
js中的运算符大体上可以分为4类:1算术运算符.2一元操作符.3比较运算符.4逻辑运算符. 算术运算符一般指的是加减乘除求余这五种操作符:+,-,*,/,%.通过算术运算符可以对js中的变量进行操作. ...
- JavaScript 基础——使用js的三种方式,js中的变量,js中的输出语句,js中的运算符;js中的分支结构
JavaScript 1.是什么:基于浏览器 基于(面向)对象 事件驱动 脚本语言 2.作用:表单验证,减轻服务器压力 添加野面动画效果 动态更改页面内容 Ajax网络请求 () 3.组成部分:ECM ...
- JS中的运算符和JS中的分支结构
JS中的运算符 1.算术运算(单目运算符) + .-.*. /. %取余.++自增 .--自减 +:两种作用,链接字符串/加法运算.当+两边全为数字时,进行加法运算:当+两边有任意一边为字符串时,起链 ...
- 让你彻底搞懂JS中复杂运算符==
让你彻底搞懂JS中复杂运算符== 大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性”之一. 在仔细阅读了ECMA ...
- JS基础_运算符的优先级
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 使用ajaxfileupload.js上传文件
一直以来上传文件都是使用form表单上传文件,也看到过有人使用js上传文件,不过看起来蛮简单的也就没有怎么去理会.今天突然要使用这种方式上传文件,期间还遇到点问题.因此就记录下来,方便以后遇到这样的问 ...
随机推荐
- ABBYY FineReader 14如何查看PDF文档
使用 ABBYY FineReader,您可以轻松查看和编辑任何类型的 PDF文档,就像是一款功能强大的PDF编辑转换器,不仅如此,它还能够允许您复制其中的文本.图片和表格.本文我们来看看如何从&qu ...
- AtCoder Beginner Contest 178 E - Dist Max 题解(推公式)
题目链接 题目大意 给你n个点(n<=2e5)要你求所有点中两个点最短的曼哈顿距离 曼哈顿距离定义为d(i,j)=|x1-x2|+|y1-y2|. 题目思路 想了很久也没有什么思路,其实就是一个 ...
- 蓝桥杯——测试次数·摔手机(2018JavaB组第4题,17分)
x星球的居民脾气不太好,但好在他们生气的时候唯一的异常举动是:摔手机. 各大厂商也就纷纷推出各种耐摔型手机.x星球的质监局规定了手机必须经过耐摔测试,并且评定出一个耐摔指数来,之后才允许上市流通. x ...
- vue 项目在 IE11 里呈现空白,不兼容的问题解决方案
我用vue 2.6.11版本编写的项目,在谷歌浏览器上运行的好好地,但是放到ie11浏览器上却是一片空白. 这个问题遇到的时候,我是蒙蔽了,抓紧去搜了搜百度,百度上的答案倒是都很统一. 都是说ie不兼 ...
- 分享篇:聊一聊 15.5K 的 FileSaver,是如何工作的?
聊一聊 15.5K 的 FileSaver,是如何工作的? FileSaver.js 是在客户端保存文件的解决方案,非常适合在客户端上生成文件的 Web 应用程序.它简单易用且兼容大多数浏览器,被作为 ...
- CoProcessFunction实战三部曲之三:定时器和侧输出
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- 老猿Python博文汇总目录--按标题排序
☞ ░ 前往老猿Python博文目录 ░ 本部分为老猿CSDN全部博文的汇总(含转载部分),所有文章在此未进行归类,仅按文章标题排序,方便关键字查找.本部分内容将至少以周为单位定期更新,可能不包含发布 ...
- 第15.22节 PyQt(Python+Qt)入门学习:Model/View架构详解
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.简介 在PyQt和Qt中,Model/View架构是图形界面开发时用于管理数据和界面展现方式的关 ...
- 第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
一. 引言 在<第14.3节 使用google浏览器获取网站访问的http信息>和<第14.4节 使用IE浏览器获取网站访问的http信息>中介绍了使用Google浏览器和IE ...
- 第15.12节PyQt(Python+Qt)入门学习:可视化设计界面组件布局详解
一.引言 在Qt Designer中,在左边部件栏的提供了界面布局相关部件,如图: 可以看到共包含有四种布局部件,分别是垂直布局(Vertical Layout).水平布局(Horizontal La ...