ES6 是ECMAScript就是JavaScript中的語法規范!定義基礎的語法、變量、數據類型
let
-
不能對同一變量重復聲明定義
-
lit聲明變量不會變量提升
-
定義的變量塊級作用域。一個花括號一個塊。
-
函數內不能用let重新聲明函數的參數
const
-
const定義常量不可修改
-
只在塊級作用域起作用
-
const 不存在變量提升
-
不可重復聲明同一個量
-
聲明后必要賦值
-
常量是對象的時候,可以改變里面的值,不可以改變對象
快速讓瀏覽器兼容ES6的方法
-
利用nodejs進行bable導入
-
啟動命令提示符窗口並且輸入:npm install babel-core@5,然后回車
-
使用,然后用ie9打開測試
-
解構賦值
ES6允許按照一定模式,從數組和對象中提取值,對變量進行賦值,這被稱為解構(Destructuring)。
-
數組的解構賦值
-
可全部賦值,也可賦值部分
-
var [a, b, c] = [1, 2, 3];
-
console.log(a, b, c); //1 2 3
-
允許嵌套
-
var [a, b, [c, d], e] = [1, 2, [3], 4, 5];
-
console.log(a, b, c, d, e) //1 2 3 undefined 4
-
允許有默認值,后面賦值回將其覆蓋
-
var [a, b, [c, d], e = 1] = [1, 2, [3, 4]];
-
console.log(a, b, c, d, e); //1 2 3 4 1
-
var [a, b, [c, d], e = 1] = [1, 2, [3, 4], 5];
-
console.log(a, b, c, d, e); //1 2 3 4 5
-
解構賦值(對象)
-
等號左邊是變量名,等號右邊不能全是變量名
-
如果有嵌套格式,需要等號兩側格式一致
-
等號右邊可以有初始值,想要拿到初始值就不要賦新值
-
var { a, b, c } = { 'a': {'name': 'zhangsan', 'age': '18' }, 'b': 2, 'c': 3}
-
console.log(a, b, c); // {name: "zhangsan", age: "18"} 2 3
-
字符串解構賦值
-
var [a, b, c, d, e, f, g, h] = "不想搬宿舍必須我";
-
console.log(a, b, c, d, e); //不 想 搬 宿 舍
-
console.log(f, g, c) //必 須 搬
-
console.log(h, a, b) //我 不 想
-
解構賦值的用途
-
交換變量的值
-
var x = 10;
-
var y = 20;
-
[x, y] = [y, x];
-
console.log(x, y); //20 10
-
提取函數返回的多個值
-
function fn1() {
-
return { 'name': '張三', 'age': '22' }
-
}
-
var { name, age } = fn1();
-
console.log(name, age); //張三 22
-
定義函數參數
-
function fn2({ a, b, c }) {
-
console.log('姓名:' + a);
-
console.log('身高:' + b);
-
console.log('體重:' + c); }
-
fn2({ a: "張三", b: "177cm", c: "55kg", d: '學生' });
-
姓名:張三
-
身高:177cm
-
體重:55kg
-
函數參數的默認值
-
function fn3({ name = "馬俏橋" }) { console.log(name)} fn3()