1

基础语法

  • 变量提升
//es5
var arr = [];
for(var i=0; i<5; i++){
    (function (i){
        arr.push(function (){
            console.log(i)
        })
    })(i)
}
arr[1]()  // 0
arr[2]()  // 1
arr[3]()  // 2
//es6
var arr = [];  // let arr = [] 都可以
for(let i=0; i<5; i++){
    arr.push(function (){
        console.log(i)
    })
}
arr[0]()  // 0
arr[1]()  // 1
arr[2]()  // 2

10个JavaScript难点

  • import在编译时执行
//profile.js
export var param = [1,2,3];
//index.js
console.log(param);
import {param} from './profile';
//并没有报错,执行结果如图

clipboard.png

  • module注意
//lib.js
var counter = 3;
function incCounter() {
  counter++;
}
module.exports = {
  counter: counter,
  incCounter: incCounter,
};
//main.js
var mod = require('./lib');
console.log(mod.counter);// 3
mod.incCounter();
console.log(mod.counter);// 3 
//结果没有变

更改lib

var counter = 3;
function incCounter() {
    counter++;
};
module.exports = {
    get counter(){
        return counter;
    },
    incCounter:incCounter
};
//结果counter值变了

参考

Es6新特性

未完【一直更新】

zeronlee
112 声望13 粉丝