[JS]运算符

一、基本运算符

  运算元:运算符应用的对象。例如 5 * 2 ,有两个运算元,左运算元5和右运算元2。

  一元运算符:只应用于一个运算元的运算符,例如一元负号运算符。

  二元运算符:应用于两个运算元的运算符,例如二元加号运算符,二元乘号运算符。

二、特殊运算符

  二元加号运算符不仅仅用作计算,它还可以用于转化字符串和连接字符串,这也是它独有的特性。其他数学运算符都只对数字有效,通常他们会将运算元转为数字。

1 let s1 = "hello" + "jack"; // hellojack
2 let s2 = "12" + 3; // "123"
3 let s3 = "12" / 2; // 6

  

  一元加号运算符具有数字转化功能。

1 let str = "123";
2 let test = true;
3 let test2 = "";
4 let test3 = " ";
5 console.log( +str ); // 123 
6 console.log( +test ); // 1
7 console.log( +test2 ); // 0
8 console.log( +test3 ); // 0

  

  一元运算符优先级高于二元运算符。

1 let str1 = "12";
2 let str2 = true;
3 console.log( +str1 + +str2 ); // 12 

  

  求余运算符 % ,a % b 结果是 a 除以 b 的余数。

1 console.log( 12 % 5 ); // 2

  

  幂运算符**,a ** b 结果为 a 的 b次方

1 console.log( 3 ** 2 ); // 9
2 console.log( 9 ** (1/2) ); // 3

  

  自增和自减

  自增 ++ ,变量本身自加1:

1 let num = 4;
2 num++;
3 console.log(num); // 5

  自减 -- ,变量本身自减1:

1 let num1 = 4;
2 num1--;
3 console.log(num1); // 3

  运算符 ++ 和 -- 可以放在变量前,也可放在变量后,产生的效果也不同:

1 let num = 4;
2 let a = ++num; // 5 
3 let b = num++; // 5 此时 num 为5
4 
5 let num2 = 3;
6 let c = --num2; // 2
7 let d = num2--; // 2 此时 num2 为2

  它们可以放在表达式中,而且优先级比绝大部分的算数运算符要高。

  修改并替换,用于简化代码,对所有运算符都有效。

1 let n = 2;
2 n += 5; // 此时 n = 7 (同 n = n + 5)
3 n *= 2; // 此时 n = 14 (同n = n * 2)
4 n *= 3 + 5; // 此时 n = 16,先计算右侧。

  

  逗号运算符

  它能让我们处理多个语句,用 , 隔开,所有的语句都执行了,但只有最后一条语句会返回结果。

1 let k = (1 + 2, 3 + 4); // 7

三、练习

  计算出下列表达式的值

 1 "" + 1 + 0      // "10"
 2 "" - 1 + 0      // -1
 3 true + false    // 1
 4 6 / "3"         // 2
 5 "2" * "3"       // 6
 6 4 + 5 + "px"    // 9px
 7 "$" + 4 + 5     // "$45"
 8 "4" - 2         // 2
 9 "4px" - 2       // NaN
10 7 / 0           // infinity
11 "  -9  " + 5    // " -9 5"
12 "  -9  " - 5    // -14
13 null + 1        // 1
14 undefined + 1   // NaN
15 " \t \n" - 2    // -2   \t \n 表示空格字符

猜你喜欢

转载自www.cnblogs.com/feng-fengfeng/p/12371499.html