运算符
1、一元运算符
一元运算符有1个操作数。例如,递增运算符"++",或者递减运算符"--"就是一元运算符。二元运算符有2个操作数。例如,除法运算符"/"有2个操作数。三元运算符有3个操作数。例如,条件运算符"?:"具有3个操作数。
递增
"++"和 递减"--"还分为前自增或后自增,前自减或后自减,两种自增自减的运算结果是不一样的;
++num前自增--num前自减 先+1或-1,再返回值num++后自增num--后自减 先返回值,再+1或-1
举个例子,看代码:
let num = 5;
console.log(num++); // 5
console.log(++num); // 7 (因为刚刚num自增了一次,这里打印的话就等于在6的基础上前自增了,在计算机科学中,被称为副效应)
console.log(num--); // 7 (这里是后自减,所以先返回值,返回7,再运算--,此时的num实际是等于6了)
console.log(--num); // 5
三元运算符例子
语法结构: 表达式1 ? 表达式2 : 表达式3
表达式1: 通常是bool类型的, 需要返回true或者false
表达式1的值为true的时候, 返回表达式2的值
表达式1的值为false的时候, 返回表达式3的值
语法:
let num = a > b ? a : b;
例子:
let num = 10 > 5 ? 10 : 5; // 10
2、逻辑运算符
&&(与运算):只要有一个值为假,结果就是假。找假值 找到假值就返回,如果都是真,返回最后一个||(或运算):只要有一个值为真,结果就是真。找真值 找到真值就返回,如果都是假,返回最后一个!(非运算):取反
示例代码:
/*细读上面三句话,就能理解为什么会是这个打印结果了*/
console.log(true && true); //true
console.log(false || false); //false
console.log(null && undefined); //null
console.log(null || undefined); //undefined
console.log("abc" && undefined); //undefined
console.log("abc" || undefined); //abc
console.log(null || false || 0 || 1 || null); //1
console.log("abc" && "bcd" && "def"); //def
3、运算符的优先级
- 1、
()优先级最高 - 2、一元运算符
++--! - 3、算数运算符 先
*/%后+- - 4、关系运算符
>>=<<= - 5、相等运算符
==!====!== - 6、逻辑运算符 先
&&后||
示例代码:
// 第一题 true && true
console.log(((4 >= 6) || ("人" != "狗")) && !(((12 * 2) == 144) && true)); // true
// 第二题
let num = 10;
// true && true
if(5 == num / 2 && (2 + 2 * num).toString() === "22") {
console.log(true); // true
}else{
console.log(false);
}