var let 度可用於聲明變量.
區別:1、let:只在let命令所在代碼塊內有效
2、let 不存在變量提升(內部影響不到外部)
var b = []; for(var j=0;j<10;j++){ let d=j; b[j]=function(){ console.log(d); }; } b[3]() //3
3、let 不允許在相同作用於重復聲明
ES5只有全局作用域和函數作用域
ES6引入了塊級作用域的概念 作用域塊和塊之間不受影響
const 也可以聲明變量,但是聲明的是常量,一旦聲明,常量的值就不能改變。
其他和let基本一致
const 聲明對象的屬性是可以修改的,因為const保存的是對象的地址。
跨模塊常量
export 導出
import 引入幾種方式
import * as XXX from './xxx'; //使用方式console.log(XXX.輸出的常量)
import {} from './xxx'; //引入變量
import xxx from 'xxxxx' ; //引入文件
ES6數組相關 數組解構
es6之擴展運算符 三個點(…)
var [a,b,c]=[1,2,3];
console.log(a,b,c)//1,2,3
let [head,...tail]=[1,2,3,4,5,6,7,8,9];
console.log(head) //1
console.log(tail);//[2,3,4,5,6,7,8,9]
es6新增Set,他類似數組,但是成員的值是唯一的,沒有重復的,可以用於去重
對象解構類似
var {name,age}={name:'conan',age:28}
console.log(name); //conan
console.log(age);//28
var {name:cname,age:cage}={name:'conan',age:28}
console.log(cname); //conan
console.log(cage);//28 // 這樣也是可以的
let object = { first: "Hello", last: "World" };
let { first: firstName, last: lastName} = object;
console.log(firstName); //Hello
console.log(lastName); //World