为什么 es7 才提出"指数运算符", 难道之前 javascript 基本不需要指数运算么?

2015-12-22 15:35:16 +08:00
 yech1990

没完整写过 javascript 的脚本, 今天看阮一峰的 es6 教程, 发现这么一句话:

"es7.exponentiationOperator:指数运算符"

之前 javascript 我是通过math.pow()来实现指数运算的, 为什么大部分语言都集成了指数运算符, 而 javascript 现在才提出, 是因为实际生产中基本用不着, 还是什么历史原因来的.

4249 次点击
所在节点    JavaScript
21 条回复
BOYPT
2015-12-22 15:39:11 +08:00
C 语言也没有指数运算符啊
yech1990
2015-12-22 15:40:24 +08:00
忘了加限制条件, "脚本语言...."

crystom
2015-12-22 15:41:54 +08:00
大部分语言都集成了指数运算符 请举例
另外指数可以用对数换底来算
yksoft1
2015-12-22 15:46:14 +08:00
@BOYPT 但是 PC 用的 CRT 里一般都有软硬浮点库和 math.h
yech1990
2015-12-22 15:48:27 +08:00
@crystom
我就会这几个
python
2**3
---
irb
2**3
---
R
2^3
---
perl
2**3

我就会这几个.... 其他的确实不清楚
bramblex
2015-12-22 15:50:11 +08:00
为什么我觉得你应该没怎么写过代码呢? ╮(╯_╰)╭……
yech1990
2015-12-22 15:51:49 +08:00
@bramblex 嗯 是哩
呵呵
chemzqm
2015-12-22 15:51:55 +08:00
因为开始的时候设计 javascript 只不过是为了给页面加点效果罢了
yech1990
2015-12-22 15:55:43 +08:00
@bramblex 看了一下你的 github 确实十分 diao.....
相比我应该就是 hello world 的水平....
BOYPT
2015-12-22 16:01:47 +08:00
@yksoft1 然而依然没有运算符。
bramblex
2015-12-22 16:02:43 +08:00
@yech1990
不关这个事……中缀运算符在很多语言里面不过就是一个语法糖而已,加上并不难,甚至还有语言可以跟定义函数一样随意定义中缀运算符

举个 Haskell 的例子
a .!@#$%^&* b = a + b
print (1 .!@#$%^&* 2)

输出 3
bramblex
2015-12-22 16:07:30 +08:00
@chemzqm 但是谁都没想到, JavaScript 现在变成了一门那么流行的编程语言……
sengxian
2015-12-22 18:14:49 +08:00
我猜因为优先级的原因,所以没有加入。
3 ^ 3 ^ 3 = ? (3 ^ 3) ^ 3 or 3 ^ (3 ^ 3)
bramblex
2015-12-22 18:32:39 +08:00
@sengxian

……这个超简单啊,左结合啊。 3 ^ 3 ^ 3 -> (3 ^ 3) ^ 3
sengxian
2015-12-22 18:34:48 +08:00
bramblex
2015-12-22 18:37:31 +08:00
@sengxian 那就默认右结合嘛……

不过 js 好像没有右结合运算符……还是我大 Haskell 好
Arthur2e5
2015-12-22 22:11:15 +08:00
@yech1990 我讲一个冷门但是大家电脑上基本都有的: bash: echo $((2**32-1))

* * *
-其实是 ES7 什么都在问 Python 学吧?-
msg7086
2015-12-23 02:45:45 +08:00
JS 本来也不是拿来充当全功能脚本语言用的。
和 Py/Rb/Pl 的设计方向本来就不同。
现在逐步进化的过程中才慢慢加入一些新的通用编程特性。
arzusyume
2015-12-23 10:01:58 +08:00
大概是因为^被占用了吧...
yksoft1
2015-12-23 10:48:57 +08:00
@BOYPT 因为数学库本来就不是基本功能。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/245378

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX