1. 程式人生 > >ES6(一)

ES6(一)

obj 引用 cli 沒有 常量 javascrip {} document 改變

來自:http://h5monkey.github.io/2015/05/09/ES6%EF%BC%88%E4%B8%80%EF%BC%89/

基本語法
let是塊級作用域,函數內部使用let定義後,對函數外部無影響。


// 錯誤寫法 變量提升不可以
console.log(b);
let b = 3;
// 錯誤寫法 變量不可重復賦值
let a = 4;
let a = 5
console.log(a)











var btns = document.querySelectorAll("button"); for (var i = 0; i < btns.length; i++) { btns[i].onclick = function() { console.log(i) //永遠等於i=5 } } //改變 for (var i = 0; i < btns.length; i++) { btns[i].index = i; btns[i].onclick = function() { console.log(this.index) } } //改變 for (var i = 0; i < btns.length; i++) { (function(i) { btns[i].onclick = function() { console.log(i) } })(i); } //改變 for (let i = 0; i < btns.length; i++) { btns[i].onclick = function() { console.log(i) //let創建出作用域塊 } }

const定義的變量不可以修改,而且必須初始化。


  //在循環語句之內是一個父作用域,在循環體中是一個子作用域
    //例子:
    for (let i = 0; i < 3; i++) {
    let i = 10;
    console.log(i);
    }
    console.log(i)

 //const聲明屬性的時候必須賦值
    var a;
    let b;
    const c; //報錯
    
    //改變常量的數據
    const a = 10;
    a = {}; //瀏覽器會報錯  改變數據
    const a = {
    obj: 10
    };
    a.obj = 20; //不會報錯  只是修改對象數據  沒有改變obj的引用

ES6(一)