高级运算符
当多个运算符在没有使用括号的情况下连在一起时,它们的执行顺序由运算符的 优先级 决定。乘法 (*) 与除法 (/) 的优先级高于加法 (+) 与减法 (-)。
// 先进行乘法运算,然后再进行加法
let x = 100 + 50 * 3; // 250
// 使用括号时,括号中的运算会优先计算
let y = (100 + 50) * 3; // 450
// 拥有相同优先级的运算会从左到右依次计算
let z = 100 / 50 * 3;
在编写程序时,可以使用若干高级数学运算符。下面列出了一些主要的高级数学运算符:
- 取模运算符 (
%):取模运算符返回除法运算的余数。例如:
console.log(10 % 3); // 1
console.log(11 % 3); // 2
console.log(12 % 3); // 0
- 幂运算符 ( ):幂运算符将一个数字提升为另一个数字的幂。它是一个较新的运算符,并未被所有浏览器支持,因此你可能需要使用
Math.pow函数来代替。例如:
console.log(2 ** 3); // 8
console.log(3 ** 2); // 9
console.log(4 ** 3); // 64
- 自增运算符 (
++):自增运算符将数字加一。它可以作为前缀(在操作数前)或后缀(在操作数后)使用。例如:
let x = 1;
x++; // x 现在是 2
++x; // x 现在是 3
- 自减运算符 (
--):自减运算符将数字减一。它可以作为前缀(在操作数前)或后缀(在操作数后)使用。例如:
let y = 3;
y--; // y 现在是 2
--y; // y 现在是 1
- Math 对象:
Math对象是 JavaScript 中的内置对象,提供了数学函数和常量。你可以使用Math对象的方法来执行高级数学运算,例如求一个数的平方根、计算一个数的正弦值或生成一个随机数。例如:
console.log(Math.sqrt(9)); // 3
console.log(Math.sin(0)); // 0
console.log(Math.random()); // 0 到 1 之间的随机数
这些只是 JavaScript 中可用的高级数学运算符和函数的一些例子。还有很多其它的运算符和函数可以在编写程序时用于执行更复杂的数学运算。
Exercise
Correct!
let num1 = 10;
let num2 = 5;
// 使用 ++ 运算符将 num1 的值加一。
const result1 =
// 使用 -- 运算符将 num2 的值减一。
const result2 =
// 使用 += 运算符将 num2 加到 num1 上。
const result3 =
// 使用 -= 运算符将 num2 从 num1 中减去。
const result4 =
let num1 = 10; let num2 = 5; // 使用 ++ 运算符将 num1 的值加一。 num1++; const result1 = num1; // 11 // 使用 -- 运算符将 num2 的值减一。 num2--; const result2 = num2; // 4 // 使用 += 运算符将 num2 加到 num1 上。 num1 += num2; const result3 = num1 // 15 // 使用 -= 运算符将 num2 从 num1 中减去。 num1 -= num2; const result4 = num1 // 11
assert(result1 === 11 && result2 === 4 && result3 === 15 && result4 === 11 );
空值合并运算符 '??'
nullish 合并运算符会在第一个参数不是 null/undefined 时返回第一个参数,否则返回第二个参数。它写作连续两个问号 ??。表达式 x ?? y 的结果是:
- 如果
x已被定义,则结果为x; - 否则结果为
y。
这是对该语言的一个较新的扩展,为了在旧浏览器中支持它,可能需要使用 polyfill。