ES6(一)
阿新 • • 發佈:2017-05-24
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(一)