JavaScript 基础篇运算符与表达式
运算符
算术运算符
算术运算符就是我们常用的 加、减、乘、除、取余等内容,不过在计算机的程序中首先记住一个问题:浮点数的运算是有精度的问题,尽量避免浮点之间的运算,不能拿浮点数进行相加或者相减
-
加法:+
-
减法:-
-
乘法:*
-
除法:/
-
取余:%
// + 号 操作
console.log(1 + 1) // 2
// - 号 操作
console.log(5 - 3) // 2
// * 号 操作
console.log(1 * 2) // 2
// / 号 操作
console.log(4 / 2) // 2
// 判断一个数是否被整除
console.log(4 % 2 === 0) // true
// 浮点数不能进行 相加或者相减 因为有精度的问题
console.log(0.1 + 0.2) // 0.30000000000000004
console.log((0.1 + 0.2) === 0.3) // 因为精度问题
注意:取余也是常用的符号
递增递减运算符
运算符写在前面 例如: ++num 表示(num+1)
前置递增: ++num (先加 1 然后将结果返回)
后置递增: num++ (先返回原值,然后加 1)
前置递减: --num
可以自己在编辑器中尝试尝试。前置递增和后置递增在对变量值中运用是不一样的。
比较运算符
比较运算符是用来比较左边和右边两个变量或者值是否相等,在将来工作的业务会很常用 if 判断+比较运算符来判断是否执行某个选项。前端培训
-
大于:>
-
小于:<
-
大于等于:>=
-
小于等于:<=
-
相等:==
-
不相等:!=
-
不全等:!==
-
全等:===
// 判断是否大于一个数
var num = 5
if (4 < 5) {
console.log('我被执行了')
}
// 可以自己在编辑器中尝试下以下操作符返回 true 还是 false
console.log('5' == 5)
onsole.log('5' === 5)
...
等等,可以自己在编辑器中试一试
不过需要注意的是 一个等于、两个等于、和三个等于分别代表的是什么
- = : 一个等于代表赋值 例如: var num = 4
- == : 两个等于代表判断两个是否相等
- === : 三个等于代表 判断两边的值和数据类型是否完全相同
逻辑运算符
逻辑运算符中用的比较多的是逻辑或和逻辑与,这两者也是相当重要的一部分,在未来的工作上是非常常用的。因为牵扯到判断所以在未来 if (false && true) 这种类型的判断是非常常见。在逻辑运算符中逻辑中断(短路)也是一个非常状态
-
&&:逻辑与(and):逻辑与 && and 两个都是为 true 的话结果才是 true,只要有一侧为 false,结果就是 false
对于逻辑与,逻辑中断形式如下:
如果第一个表达式的值为真,则返回第二个表达式
如果一个表达式的值为假,则返回第一个表达式(相当于第一为假的话,第二个不计算)
-
||:逻辑或(or):逻辑或 || or 两侧都是 false 的话结果才是 false,只要有一侧是 true 结果就是 true
-
!: 逻辑非(not):意思是取反,!true 表示 false,!false 表示 true
短路运算符(逻辑中断):短路运算原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值
赋值运算符
赋值运算符意思是对变量进行赋值,分为 =、+=、-=、*=、/=、%=等这些运算符,表示的是 赋值,不过需要注意的是
// 在赋值运算符值,需要格外注意简写的形式
// 乘除取余等 都可以这样简写
var = var + 1 可以简写为: var += 1
运算符的优先级
-
小括号 —— ()
-
一元运算符 —— ++,--,!
-
算术运算符 —— 先乘除后加减
-
关系运算符 —— > >= < <=
-
相等运算符 —— == != === !==
-
逻辑运算符 —— 先 && 后 ||
-
赋值运算符 —— =
-
逗号 —— ,
逻辑与 要比 逻辑或的权重高
流程控制
流程控制可以想象成一个流程,如果这个流程中是 false 的话就不执行这个流程中的内容,如果是 true 的话就执行这个流程中的内容,在流程控制中最重要的还是 if,当然也会少量的运用到 switch...case 等,还有一个比较重要的三元表达式,在工作当中很常用。
分支语句 if
// 普通 if else 语句
if (true) {
console.log('我被执行了')
} else {
console.log('我没有被执行')
}
// if else if else
if (false) {
console.log('我没有被执行')
} else if (false) {
console.log('我也没有被执行了');
} else {
// 因为前两段都是false ,所以执行了第三段
console.log('我被执行了')
}
switch...case
switch 语句和 if...else 语句比较的类似,也是执行判断逻辑。但是相比 if 语句不常用。因为 if..else 语句更灵活,效率更高一点。
// switch 表达式
switch (表达式) {
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
default:
执行最后的语句;
}
三元表达式
三元表达式相当于是对 if 等判断语句的简写形式,工作中会常用三元表达式来做简单的判断,因为相对 if 和 switch 判断更多写在方法中,而三元表达式更多写在组件中。
一般是由这样的形式组成:num > 5 '是的' : '不是'
// 三元表达式
var num = 10;
var result = num > 5 '是的' : '不是'
console.log(result) // 是的