Yawenina

435 经验值

报错信息: setTimeOut is not defined

setTimeout, 这个o是小写。

视频里说的是,如果不加(), 会把 { name, age } 这解释为代码块。

就是 () 这个括号,否则解释器会把 {} 当做当做代码块。如果不加(),这样写就会报错。

主题:Material Theme
字体:Operator Mono

使用var声明的话,最后执行的setTimeout函数都是获取的全局变量里的i, 获取的是一个地方的i,所以是10.
而使用let声明,每次循环都会给i创建一个新的绑定,相当于每一次都是一个新的i

使用 babel 转译一下可能看的更清楚:

ES6 写法:

    for (let i = 0; i < 10; i++) {
            setTimeout(() => {
                console.log(i)
            })
        }

转译为:

"use strict";

var _loop = function _loop(i) {
    setTimeout(function () {
        console.log(i);
    });
};

for (var i = 0; i < 10; i++) {
    _loop(i);
}

不加括号的话,解释器会把起首的大括号解析为一个代码块,而不是赋值语句。
加了之后,这就是一个解构赋值,所以就是把 Tom.name 的值赋值给 name 。

第一个some的回调函数没有return, 而第二个是使用的隐式return。这个是箭头函数的用法哦。

OK ! 收到!是想要一些基础使用的教程么?