有一次我加班到凌晨,咖啡一杯接一杯。
第一杯,精神回来了;
第二杯,手速起飞;
第三杯,感觉自己能写完一个中台;
第四杯……心跳开始报警。
我突然意识到:有些东西不是线性增长的,而是指数级爆炸的。
技术世界里也是这样。你以为只是“再乘一次”,但结果已经完全不是一个量级了。而 JavaScript 里的指数操作符,本质上讲的,就是这个故事。
什么是指数?先别急着写代码
如果你刚入行的时候,数学不太好(比如我),那“指数”两个字可能自带压力。但换个说法你就懂了。
假设你有 1 块钱:
- 第一天翻 1 倍:2 块
- 第二天再翻 1 倍:4 块
- 第三天再翻 1 倍:8 块
这不是“加钱”,而是每一步都在“复制自己”。数学上我们写成:
而在 JavaScript 里,以前我们只能这样写:
直到有一天,ECMAScript 说了一句非常人性化的话:“程序员,别受委屈了,给你一个专门的操作符吧。”
于是,指数操作符 ** 登场了。
指数操作符 **,长什么样?
一句话版本:
表示:a 的 b 次方
举几个最直观的例子:
如果你是第一次看到它,可能会觉得:“这不是 Python 吗?”
没错,Ja