Discuss / JavaScript / 和python相比一些不理解的地方

和python相比一些不理解的地方

Topic source
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

Python可以这么写,JS为什么还需要临时变量t,如果直接像Python一样 a, b = b, a+b 结果是错的

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

因为Python实际是:

t = (b, a + b)
a, b = t

可以合起来写,称为解构

ES6也可以解构了:

var [a, b] = [1, 2];
[a, b] = [b, a + b];

不过大部分浏览器不支持,目前好像只有Firefox支持


  • 1

Reply