运算符
运算符也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。
JavaScript中常用的运算符有:
● 算术运算符
● 递增和递减运算符
● 比较运算符
● 逻辑运算符
● 赋值运算符
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取余数 |
注意:浮点数 算数运算里面会有问题,且不能直接拿浮点数进行比较 是否相等
表达式和返回值
表达式:是由数字、运算符、变量等以能求得数值的有意义的排列方式所得的组合
简单理解:是由数字、运算符、变量等组成的式子,都有值进行返回,在程序里面右边表达式计算完毕把返回值给左边
递增和递减运算符概述
如果需要反复给数字变量添加或减去1,可以使用递增(++)和递减(–)运算符来完成。
在JavaScript中,递增(++)和递减(–)既可以放在变量的前面,也可以放在变量的后面。放在变量前面时,称为前置递增(递减)运算符,放在变量后面时,称为后置递增(递减)运算符
注意:递增和递减运算符必须和变量配合使用
前置递增运算符
++num前置递增,自加1,类似于num = num + 1,但是 ++num 更简单。
var p=10;
console.log(++p + 10); //输出结果为21 p为10++为自加1=11,在加10=21
使用口诀:先自加,后返回值
后置递增运算符
num++后置递增,自加1,类似于num=num+1,num++写起来更简单
var p=1;
p++;
console.log(num);
var age = 10;
console.log(age++ + 10); //返回结果为20
使用口诀:先返回值,后自加
前置递增和后置递增小结
● 前置递增和后置递增运算符可以简化代码的编写,让变量的值 + 1比以前写法更简单
● 单独使用时,运行结果相同
● 与其他代码联用时,执行结果会不同
● 后置:先原值运算,后自加(先人后己)
● 前置:现自加,后运算(先己后人)
● 开发时,大多使用后置递增/减,并且代码独占一行,例如:num++;或者num–;
比较运算符概述
概念:比较运算符(关系运算符)是俩个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true/false)作为比较运算的结果。
运算符名称 | 说明 | 案例 | 结果 |
< | 小于号 | 1<2 | true |
> | 大于号 | 1>2 | false |
<= | 小于等于 | 3<=2 | false |
>= | 大于等于 | 2>=2 | true |
== | 判等号(会转型) | 37==37 | true |
!= | 不等号 | 37!=37 | false |
=== !== | 全等要求值和数据类型一致 | 37==='37' | false |
//==默认转换数据类型 会把字符串型的数据转换为数字类型
console.log(18 == '18'); //结果为true
//=== !== 全等俩遍数据类型需要一模一样
console.log(18 === 18); //结果为true
console.log(18==='18'); //结果为false
小结
符号 | 用法 |
---|---|
=(赋值) | 把右边给左边 |
==(判断) | 判断两边值是否相等(注意此时有隐式转换) |
===(全等) | 判断两边的值和数据类型是否完全相同 |
逻辑运算符概述
概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。开发中经常用于多个条件的判断。
逻辑运算符 | 说明 | 案例 |
&& | “逻辑与”,简称“与”and | true&&false |
|| | “逻辑或”简称“或” or | true||false |
! | “逻辑非”,简称“非”not | !true |
//逻辑与 && 俩侧都为true 结果才是true 只要有一侧为false 结果为false
console.log(3 > 5 && 3 > 2); //结果为false
//逻辑或 || or 俩侧都为false 结果是假 false 只要有一侧为true 结果就是true
console.log(3 > 5 || 3 > 2); //结果为true
//逻辑非 not !
console.log(!true); //false
短路运算(逻辑中断)
短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,不在继续运算右边的表达式的值。
1、逻辑与
● 语法:表达式1&&表达式2
● 如果第一个表达式的值为真,则返回表达式2
● 如果第一个表达式的值为假,则返回表达式1
//用布尔值参与的逻辑运算 true && false == false
console.log(123 && 456); //结果为456
console.log(0 && 456); //结果为0
console.log(0 && 1 + 2 && 456 * 567); //结果为0
//如果有空的或者否的的为假 其余是真 0 '' null undefined NaN
2、逻辑或
逻辑或短路运算 如果表达式1结果为真 则返回的是表达式1,结果为假 则返回表达式2
console.log(123 || 456); //结果为123
console.log(0 || 456); //结果为456
console.log(0 || 1 + 2 || 456); //结果为3 表达式1为假则运行表达式2表达式2为真则输出表达式2 结果为3
//逻辑中断很重要 会影响程序运行结果
var num = 0;
console.log(123 || num++); //结果为123
console.log(num); //结果为0
赋值运算符
概念:用来吧数据赋值给变量的运算符
赋值运算符 | 说明 | 案例 |
= | 直接赋值 | var userName='我是值'; |
+=、= | 加、减一个数后再赋值 | var age=10; age+=5; //15 |
*=、/=、%= | 乘、除、取余 后在赋值 | var age=2; age*=5; //10 |
运算符优先级
优先级 | 运算符 | 顺序 |
1 | 小括号 | () |
2 | 一元运算符 | ++ -- ! |
3 | 算数运算符 | 先* / % 后 + - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先&& 后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |