关于 JavaScript 的 while 循环

2015-07-05 10:49:01 +08:00
 cc7756789
function* fib(max){
    var
        t,
        n = 1,
        a = 0,
        b = 1;
    while ( n<max ){
        yield a;
        t = a+b;
        a = b;
        b = t;
        n++;
    }
    return a;
}

而Python可以直接这么粗暴的写

def fib(nmax=None):
    nmax = nmax or 10
    n, a, b  = 0, 0, 1
    while n < nmax:
        yield a
        a, b = b, a+b
        n += 1

然后把我搞晕了,我都不会写fibonacci了,为什么JS还需要个临时变量t, 如果 a, b = b, a+b结果是不正确的,然后为什么在循环体外还需要return返回最后的结果

3974 次点击
所在节点    JavaScript
22 条回复
mingyun
2015-07-12 20:25:25 +08:00
@keyanzhang 求网址 浏览器不支持运行es6
keyanzhang
2015-07-14 10:35:40 +08:00

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

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

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

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

© 2021 V2EX