ES7(ECMAScript 2016)是 JavaScript 的一个版本,引入了一些新的特性和语法,其中包括指数运算符(**)和移位运算符(<<,>>,>>>)。这些运算符在前端开发中非常有用,因此我们需要详细了解它们。
指数运算符(**)
指数运算符()是 ES7 中引入的,它用于进行指数运算,即求一个数的某个次幂。指数运算符的语法很简单,就是两个星号()。
下面是一个使用指数运算符的示例代码:
const a = 2; const b = 3; console.log(a ** b); // 8
上面的代码中,我们定义了两个变量 a 和 b,分别赋值为 2 和 3。然后我们使用指数运算符求 a 的 b 次幂,并把结果输出到控制台上。运行这段代码,输出的结果是 8。
我们还可以使用指数运算符对负数、小数、以及更复杂的表达式进行计算。比如下面的代码可以计算出 $\sqrt[3]{27}$:
const a = 27; const b = 1/3; console.log(a ** b); // 3
指数运算符的优先级比较高,它会先于其他运算符进行计算。如果需要改变优先级,可以使用括号来调整运算的顺序。
移位运算符(<<,>>,>>>)
移位运算符是一类位运算符,它用于对二进制数进行移位操作。移位运算符分为左移运算符(<<)、右移运算符(>>)和无符号右移运算符(>>>)三种。
左移运算符(<<)
左移运算符(<<)会将二进制数向左移动指定的位数,并在右侧填充 0。左移运算符的语法是 x << y,其中 x 是要移位的数,y 是移动的位数。
下面是一个左移运算符的示例代码:
const x = 23; const y = 3; console.log(x << y); // 184
上面的代码中,我们定义了两个变量 x 和 y,分别赋值为 23 和 3。我们使用左移运算符将 x 向左移动 3 位,并把结果输出到控制台上。运行这段代码,输出的结果是 184。
右移运算符(>>)
右移运算符(>>)会将二进制数向右移动指定的位数,并在左侧填充最高位的值。如果最高位是 0,则在左侧填充 0;如果最高位是 1,则在左侧填充 1。右移运算符的语法是 x >> y,其中 x 是要移位的数,y 是移动的位数。
下面是一个右移运算符的示例代码:
const x = -23; const y = 3; console.log(x >> y); // -3
上面的代码中,我们定义了两个变量 x 和 y,分别赋值为 -23 和 3。我们使用右移运算符将 x 向右移动 3 位,并把结果输出到控制台上。运行这段代码,输出的结果是 -3。
无符号右移运算符(>>>)
无符号右移运算符(>>>)会将二进制数向右移动指定的位数,并在左侧填充 0。无符号右移运算符的语法是 x >>> y,其中 x 是要移位的数,y 是移动的位数。
下面是一个无符号右移运算符的示例代码:
const x = 23; const y = 3; console.log(x >>> y); // 2
上面的代码中,我们定义了两个变量 x 和 y,分别赋值为 23 和 3。我们使用无符号右移运算符将 x 向右移动 3 位,并把结果输出到控制台上。运行这段代码,输出的结果是 2。
总结
指数运算符和移位运算符是 ES7 中引入的新特性,它们在前端开发中非常有用。指数运算符可以用于求某个数的指定次幂,移位运算符则可以用于进行二进制数的移位操作。在实际开发中,我们可以根据需要灵活地使用这些运算符,从而实现更多的功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64f04642f6b2d6eab3a3f746