js运算符

158 阅读2分钟

运算符


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);
}