运算符
软件编程运算符是对硬件CPU运算器的抽象,比如加法对应的就是CPU中ALU单元里面的加法器,从数学上看乘法是对加法的抽象,乘方是对乘法的抽象 如果处理器没有支持直接乘方计算的数字电路结构,软件层面通常会把乘方运算处理为乘法或加法运算。运算符有算数、赋值、比较、逻辑、位、关系等运算符。
算术运算符
运算单元基本都是数字类型数据,运算的数字成为操作数, 加法运算符除了计算数字求和,也用于把两个字符串合并为一个字符串
运算符 | 意义 | 案例 | 结果 |
+ | 加 | 5+2 | 7 |
- | 减 | 5-2 | 3 |
* | 乘 | 5*2 | 10 |
/ | 除 | 5/2 | 2.5 |
% | 求余数 | 5%2 | 1 |
++ | 累加 | ++5 | 6 |
-- | 递减 | --5 | 4 |
一般如果不赋值的话,i++与++i,i本身都会加1,但i++和++i的返回值不一样,比如5++返回5,++5返回6。 自增运算符后置,先返回自己赋值给变量,然后自身加一;自增运算符前置i增加一后返回数值赋值给变量
两个字符串执行“+”,表示两个字符串合并为一个字符串。str1="世界上",str2="只有一个中国",str = str1+str2;结果是 str="世界上只有一个中国"。
赋值运算符
运算符 |
= |
+= |
-= |
*= |
/= |
%= |
- 数字赋值,赋值的就是数字本身;函数、数组、对象赋值,实际值是数据的地址索引。
- x+=y表示x=x+y;其它同理,相关的符号都是把算数运算符和赋值“=”结合在一起。
比较运算符
返回值是布尔类型,值为true或false,常用与if语句
运算符 | 意义 | 案例 |
== | 等于(值) | 5==8 返回结果 false
4 == "4"返回结果true |
=== | 全等(值和类型) | 5===5 返回结果 true
5==="5" 返回结果 false |
!= | 不等于 | 5!=8 返回结果 true |
> | 大于 | 5>8 返回结果 false |
< | 小于 | 5<8 返回结果 true |
>= | 大于或等于 | 5>=8 返回结果 false |
<= | 小于或等于 | 5<=8 返回结果 true |
- 主要要注意等于==和全等于===,前者只比较两个变量的值是否相等, 比如数字类型自变量4和字符串类型变量"4",这两个数据在比较的时候会首先把数据类型转换到一致再比较; 全等于出了比较值是否相等,也要比较变量的数据类型是否一样。
逻辑运算符
返回值是布尔类型,值为true或false,常用与if语句
运算符 | 意义 | 案例 |
&& | 与,两边比较同时成立返回true | (2 < 3 && 2 > 1) 返回结果 true |
|| | 或,只要有一个比较运算成立返回true | (3=="3" || 1==5) 返回结果 true |
! | 非,比较运算不成立返回true | !(3==3) 为 false |
逻辑计算枚举
计算 | 返回值 |
true && true | true |
true && false | false |
false && true | false |
false && false | false |
true || true | true |
true || false | true |
false || true | true |
false || false | false |
!true | false |
!false | true |
条件运算符
语法
条件 ? 结果1 : 结果2
a=(x < y) ? 5 : 10; //如果x < y成立,那么a=5,否则a=10;
a=(2 < 4) ? 5 : 10; //结果: a=5
逗号运算符
- 一个语句声明多个变量:let a,b,x,y;
- 数组对象元素间隔:[a,b,x,y];
- 对象方法或属性间隔:{a:10,x:"abc"};
小括号运算符
控制运算优先级
- (x+y)*z