[JS]运算符

一、基本运算符

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

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

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

 

二、特殊运算符

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

1 let s1 = "hello" + "jack"; // hellojack2 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 ); // 17 console.log( +test2 ); // 08 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 ); // 92 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 为54 5 let num2 = 3;6 let c = --num2; // 27 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 // NaN10 7 / 0 // infinity11 " -9 " + 5 // " -9 5"12 " -9 " - 5 // -1413 null + 1 // 114 undefined + 1 // NaN15 " \t \n" - 2 // -2 \t \n 表示空格字符

 

相关文章