1、运算符都有哪些?
算术运算符、赋值运算符、一元运算符、比较运算符、逻辑运算符
## 算术运算符
算术运算符:+(加) ,-(减) , *(乘) , / (除), %(取余)
算术运算符优先级顺序:优先级相同时以书从左向右执行
乘、除、取余优先级相同
加、减优先级相同
乘、除、取余、优先级大于加减
使用()可以提升优先级
<font color = red> <font>
**总结小技巧:先乘除后加减,有括号先算括号里面的
console.log(1+2*3)//返回7
console.log(10-8/2)//返回6
console.log(2%5 + 4*2)//返回10
总结
1、算术运算符有那几个常见的?
+(加) ,-(减) , *(乘) , / (除), %(取余)
2、算数运算符优先级怎么记忆?
先乘除后加减,有括号先算括号里面的。
3、取余运算符开发中的使用场景是?
来判断某个数字是否能被整除
## 赋值运算符
赋值运算符:-=;+=;*=;/=;%=
## 赋值运算符
赋值运算符的意义是?
将等号右边的值赋予给左边,要求左边必须是一个容器
如: let num = 18
num = num +1
console.log(num)
赋值运算符总结:
1、赋值运算符执行过程?
将等号右边的值赋予给左边,要求左边必须是一个容器
2、简化代码,如让let num = 10 ; num 加 5 怎么写?
num+=5
## 一元运算符
众多的javascript的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符。
**一元运算符是这样的**: let num = 1
**二元运算符是这样的**: let num = 10 + 20
**三元运算符是这样的**: let num = 10 + 20 + 30
**能够使用一元运算符做自增运算**
自增: ++ 作用:让变量的值 +1 用法: let num = 1 ; ++num //让num的值加1变2
自减: -- 作用:让变量的值 -1 用法: let num = 4; num-- //让num的值减1变3
**使用场景**:经常用于计数来使用。比如进行10次操作,用它来计算进行了多少次了。
自增运算符和减运算符前置后置的差异?
前置运算符:先自加再使用 (++在前 先加)
let i = 1;
console.log(++i + 2) //结果是4; i是先自加1,变成2之后,在和后面的2相加
后置运算符:先使用再自加 (++在后 后加)
let i = 1;
console.log(i++ +2) //结果是3 注意:此时的i是1 先和2相加,先运算输出完毕后,i再自加是2
自增运算符的用法:
1、前置自增和后置字增独立使用时二者并没有差别!
2、一般开发中我们都是独立使用
3、后面i++后置自增会使用相对较多
赋值运算符总结:
1、只需要一个表达式就可以运算的运算符叫一元运算符
2、自增运算符也是为了简化写法,每次自加1,使用场景时什么?
经常用于计数来使用。用来计算多少次
3、前后置自增的区别/
前置:先自增后运算
后置:先运算后自增
自减同理。。。
开发中,我们一般都是单纯使用的,后置++使用更多。
let i = 1
console.log(i++ + ++i + i)//返回7
## 比较运算符
1-比较运算符的介绍
作用:比较两个数据大小,是否相当 返回的正确结果就只要true和false 。错误的结果就是报错
2-比较运算符的使用
目标:能使用常见的比较运算符进行比较运算
如:
: 左边按是否大于右边
< : 做百年是否小于右边
= :左边是否大于或等于右边
<= : 左边是否小于或等于右边
== : 左右两边是否相等
=== : 左右两边是否类型和值都相等
!== : 左右两边是否不全等
比较结果为boolean类型,即只会得到true或false
比较运算符特殊的地方:
字符串比较,是比较的字符对应的ASCLL码 如pink 首字母 p 和red 的r opqrst 一看p比r小 假如第一位一样,再比较第二位,以此类推(从左到右) 了解即可
console.log('pink' > 'red') //false
console.log('pink' > 'pin') //true 我有你没有
console.log(1 === NaN) //false NaN 不等于任何人
console.log(NaN === NaN) //false NaN 不等于任何人
console.log(0.1 +0.2 === 0.3)//false 尽量不要比较小数,因为小数有精度问题
console.log(0.1+0.2) //返回0.300000000004
console.log(3 > '2') // 不同类型之间比较会发生隐式转换
总结: 不同类型之间会发生隐士转换
1、最终把数据隐士转换成number类型再比较
2、开发中,如果进行准确的比较我们更喜欢 === 或者 !==
= 和== 和===三者区别?
= 是赋值
== 是判断,只要求值相等,不要求数据类型一致也能返回true
=== 是全等 要求值和数据类型一样的才能返回true
比较运算符返回的结果是什么?
结果只有两个 true 和false
## 逻辑运算符
我们掌握逻辑运算符,为程序’能思考‘做准备
学习路径:
1、逻辑运算符的介绍
2、逻辑运算符的使用
3、逻辑运算符里的断路
假如我想判断一个数据大于5且小于10,该怎么办?
错误写法:5 < 数据 < 10
需要运算符用来解决多重条件判断
逻辑运算符都有哪些?
// // 逻辑与 一假则假 意思是 有一个false 就是 false
// console.log(true && true) //返回true
// console.log( false && true) //返回false
// // 逻辑或 一真则真 意思是 有一个true 就是 true
// console.log( false || false) //返回false
// console.log( false || true ) //返回true
// // 逻辑非 取反
// console.log(!true) //返回false
// console.log(!false)//返回true
逻辑运算符里的断路
断路:只存在于 && 和 ||中,当满足一定条件会让右边代码不执行
符号 断路条件
&& 左边为false就断路
|| 左边为true就断路
原因:通过左边能得到整个式子的结果,因此就没必要再判断右边
运算结果:无论&& 还是 ||, 运算结果都是最后执行的表达式值,一般用在变量赋值。
// 有5个值是当false来看的 如 false 数字0 '' undefined null 其余都是真的
console.log(false && 20) //返回false 左边false 右边就不执行了 直接返回false
console.log( 5 < 3 && 20)// 返回false 5< 3 左边就false 右边就不执行了 直接返回false
console.log( undefined && 20)// 返回undefined undefined默认就是假的,直接返回undefined
console.log(null && 20 )// 返回null null 默认就是假的 ,直接返回null
console.log(0 && 20)// 返回0 数字0 默认就是假的 返回0
console.log(10 && 20)// 返回20 10是真的;20是真的;那就是返回20
// 逻辑或 : 左边为true就断路
console.log(false || 20) //返回20 左边false 左边不断路 直接返回20
console.log(5 < 3 || 20)// 返回20 5< 3 左边就false不断路 直接返回20
console.log(undefined || 20)// 返回20 undefined 默认是假的 但不断路 直接返回20
console.log(null || 20)// 返回20 null 默认就是假的 不断路 ,直接返回20
console.log(0 || 20)// 返回20 数字0 默认就是假的,但它不断路 直接返回20
console.log(10 || 20)// 返回20 10是真的 它断路 ,后边不执行 直接返回10
逻辑运算符总结:
1、逻辑运算符有哪三个?
与(&&) 或(||) 非(!)
2、逻辑运算符断路运算符怎么执行的?
只存在 与(&&) 或(||)中,当满足一定条件会让右边代码不执行
&& 左边为false就断路
|| 左边为true就断路
运算符优先级练习题