JavaScript 语言为何需要那么多高级语法

2019-04-03 17:25:29 +08:00
 summersnow521

JavaScript 语言中有了 for 循环语句,为何还要有 forEach、map、reduce 等这些高级的语法,仅仅是为了代码简洁吗?但是代码执行效率可能会有所下降吧(未证实过,只是猜测。。)?

5262 次点击
所在节点    JavaScript
39 条回复
momocraft
2019-04-03 17:29:29 +08:00
简洁还不够吗
vampuke
2019-04-03 17:32:34 +08:00
执行效率的下降基本可以忽略不计,代码的简洁和可读性都大幅提高
qiuxiaojie
2019-04-03 17:33:23 +08:00
函数式编程必备 forEach map reduce
VDimos
2019-04-03 17:34:56 +08:00
这些不是语法,只是封装起来更好用而已
MaxTan
2019-04-03 17:35:07 +08:00
你说的这些都是 function 吧,并不是语法。。。
KuroNekoFan
2019-04-03 17:35:59 +08:00
谈下我的看法
用 for 迭代的话,需要事先声明多个临时变量,并且这些临时变量是在比逻辑代码层级更高的 block scope 中
引入了 forEach/map/reduce 之后,可以以更 functional 的方式来编写代码
1010011010
2019-04-03 17:36:40 +08:00
这些方法都有自己的适用场景
summersnow521
2019-04-03 17:36:51 +08:00
@MaxTan
@VDimos
表述有误,确实不能称为语法,是实例方法
NonClockworkChen
2019-04-03 17:37:47 +08:00
每个方法都挺有用的
userdhf
2019-04-03 17:40:50 +08:00
就是语法糖
js 不光有语法糖
还有语法糖的语法糖....
miniwade514
2019-04-03 17:42:21 +08:00
如果没有这些方法,你也会自己封装一个的
ayase252
2019-04-03 17:46:36 +08:00
建议看一下 SICP
shintendo
2019-04-03 17:50:47 +08:00
连语法都不是的东西,也成“语法糖”了
大家各种语言都别用标准库了
hoyixi
2019-04-03 17:53:41 +08:00
其实,这些语法糖,是 js 补上了缺的作业罢了。

很多脚本语言,这些语法都是相通的
DOLLOR
2019-04-03 17:56:09 +08:00
没有的时候嫌弃 JS 是残缺的语言,有了又嫌弃 JS 太复杂?
xiangyuecn
2019-04-03 18:07:17 +08:00
这不是语法,这只是方法。
lastpass
2019-04-03 18:08:58 +08:00
我给你讲,这些语法糖超甜的说。
mind3x
2019-04-03 18:16:19 +08:00
学一点 SICP,终身受益。
mskf
2019-04-03 18:18:18 +08:00
forEach 不保证顺序执行的
Justin13
2019-04-03 18:21:07 +08:00
作为函数式爱好者,我已经 1 年多没用过 for 循环了,除了一次写堆排序。

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

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

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

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

© 2021 V2EX