JavaScript运算符
JS中常用的运算符:
- 算数运算符
- 递增和递减运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
算数运算符
运算符 | 描述 | 实例 |
---|
+ | 加 | 10 + 20 = 30 | - | 减 | 10 - 20 = -10 | * | 乘 | 10 * 20 = 200 | / | 除 | 10 / 20 = 0.5 | % | 取余数(取模) | 返回除法的余数 9 % 2 = 1 |
浮点数的最高精度是17位小数,但在进行算术运算时其精度远远不如整数,所以不要直接判断两个浮点数是否相等
var result = 0.1 + 0.2;
console.log(0.07 * 100);
递增、递减运算符
递增(++)和递减(–)
在JS中递增(++)和递减(–)可放在变量前面和后面,放在前面时我们可以称为前置递增(递减)运算符,放在变量后面时我们可以称为后置递增(递减)运算符
递增递减运算符只能搭配变量使用
前置递增运算符
++num前置递增,类似于num = num + 1
先自加1,后返回值
后置递增运算符
num++前置递增,类似于num = num + 1
先返回原值,后自加1
示例
var a = 10;
++a;
var b = ++a + 2;
console.log(b);
var c = 10;
c++;
var d = c++ + 2;
console.log(d);
var e = 10;
var f = e++ + ++e;
console.log(f);
比较运算符
比较运算符是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true、false)作为比较运算的结果。
运算符名称 | 说明 | 案例 | 结果 |
---|
< | 小于号 | 1 < 2 | true | > | 大于号 | 1 > 2 | false | >= | 大于等于号(大于或等于) | 2 >= 2 | true | <= | 小于等于号(小于或等于) | 3 <= 2 | false | == | 判等号(会转型) | 37 == 37 | true | != | 不等号 | 37 != 37 | false | === !== | 全等 要求值和数据类型都一致 | 37 === ‘37’ | false |
==会转型,如 18 == ‘18’ 结果为true
逻辑运算符
逻辑运算符是用来进行布尔值运算的运算符,返回值也是布尔值
逻辑运算符 | 说明 | 案例 |
---|
&& | “逻辑与”,简称"与" and | true && false | || | “逻辑或”,简称"或" or | true || false | ! | “逻辑非”,简称"非" not | !true |
- 逻辑与:两边都是 true 才返回 true,否则返回 false
- 逻辑或:两边都为 false 才返回 false,否则都为 true
- 逻辑非:也叫作取反符,用来取一个布尔值相反的值,如 true 的相反值是 false
短路运算(逻辑中断)
原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值
逻辑与
- 语法:表达式1 && 表达式2
- 如果第一个表达式的值为真,则返回表达式2
- 如果第一个表达式的值为假,则返回表达式1
console.log(123 && 456);
console.log(0 && 456);
console.log(123 && 456 && 789);
console.log(0 && 1 + 2 && 456 * 789);
如果有空的或者否定的为假,其余是真,如0,’’,null,undefined, NaN
逻辑或
- 语法:表达式1 || 表达式2
- 表达式1为真,则返回表达式1
- 表达式1为假,则返回表达式2
console.log(123 || 456);
console.log(0 || 456);
console.log(123 || 456 || 789);
var num = 0;
console.log(123 || num++);
console.log(num);
赋值运算符
赋值运算符 | 说明 | 案例 |
---|
= | 直接赋值 | var usrName = ‘我是值’ | += ,-= | 加,减一个数后再赋值 | var age = 10; age+=5;//15 | *=,/=,%= | 乘,除,取模后再赋值 | var age = 2; age*=5; //10 |
运算符优先级
优先级 | 运算符 | 顺序 |
---|
1 | 小括号 | () | 2 | 一元运算符 | ++ –- ! | 3 | 算数运算符 | 先 * / 后 + - | 4 | 关系运算符 | > >= < <= | 5 | 相等运算符 | == != === !== | 6 | 逻辑运算符 | 先 && 后 || | 7 | 赋值运算符 | = | 8 | 逗号运算符 | , |
流程控制
主要有三种,分别是顺序结构、分支结构和循环结构
分支流程控制
JS提供两种分支结构语句:
if语句
if (条件表达式) {
}
if else语句(双分支语句)
if (条件表达式) {
} else {
}
if else if语句(多分支语句)
if (条件表达式1) {
} else if (条件表达式2) {
} else if (条件表达式3) {
} else {
}
三元表达式
三元表达式也能做一些简单的条件选择,有三元运算符的式子称为三元表达式
-
条件表达式 ? 表达式1 : 表达式2 -
条件表达式成立则返回表达式1,否则返回2
示例:
var num = prompt('请输入0~59之间的一个数字');
var result = num < 10 ? '0' + num : num;
alert(result);
switch语句
switch(表达式){
case value1:
break;
case value2:
break;
default:
}
示例:
var fruit = prompt('请您输入查询的苹果');
switch (fruit) {
case '苹果':
alert('苹果的价格为3.5元/千克');
break;
case '香蕉':
alert('香蕉的价格为3元/千克');
break;
default:
alert('没有这种水果');
}
switch语句和if else if语句的区别
- 一般情况下,可以互换
- switch语句通常是处理case为比较确定值的情况,而if else语句更加灵活,常用于范围判断(大于、等于某个范围)
- swit语句进行条件判断后直接执行程序的条件语句没效率更高,而if else语句有几种条件,就得判断多少次
- 当分支较少时,if else语句执行效率比switch语句高
- 当分支较多时,switch语句执行效率比较高,而且结构清晰
|