ES6教學(二)
首先如果大家沒看過我的es6基礎教學一的同學可以去看一下,因為es6的轉換需要搭建環境,這我在一里面有講到
這是地址https://blog.csdn.net/hejiancsdn/article/details/80576425大家有興趣可以去看一下
一 新的宣告方式
var宣告:
var是在es6裡是用來升級全域性變數的,我們可以先做一個簡單的例項,用var宣告一個變數a,然後輸出一下
var a = 'hejian';
console.log(a);
我們可以看到hejian在控制檯被打印出來了,那如何理解它的作用是宣告全域性變數呢,我們用匿名函式給他進行一個包裹,然後在匿名函式中呼叫這個 a變數,看看是否能呼叫到。
var a = 'hejian';
window.onload=function(){
console.log(a)
}
可以看到控制檯輸出了hejian,這證明var確實是全域性的。
let區域性宣告
let是區域性變數,我們試著在區塊中用let宣告。
var a = 2;
{
let a = 3;
}
console.log(a);
這時候控制檯打印出來的值就是2了。如果我們只在區塊裡宣告,不在外部宣告,我們列印a就會報錯
上面的例子說明了let是區域性變數宣告,let宣告只在區塊內起作用,外部是不呼叫的。
const宣告變數
在開發過程中,有些變數是希望聲明後在業務層就不在發生變化了,簡單來說就是從宣告開始,這個變數是始終不變的。
變數的解構賦值
簡單的解構賦值
以前,為變數賦值,我們只能直接指定值。比如
let a = 0;
let b = 1;
let c = 2;
而現在我們可以用陣列解構的方式進行賦值
let [a,b,c]=[1,2,3]
陣列模式和賦值模式統一:
可以簡單的理解為等號左邊和等號右邊的形式要統一,如果不統一陣列解構就會失敗
let [a,[b,c],d] = [1,[2,3],4];
如果兩邊形式不一樣,很可能獲得undefined或者直接報錯
解構的預設值:
解構賦值是允許我們使用預設值的,先看一個最簡單的預設的例子
let [foo = true]=[]; console.log(foo);//輸出true
上邊的例子陣列中只有一個值,可能你會多少有些疑惑,那我們就來個多個值的陣列,並給他一些預設值。
let [a,b='hejian']=['何建'];
console.log(a+b);//輸出 何建hejian
物件的解構賦值
解構不僅可以用於陣列,還可以用於物件。
let {foo,bar} = {foo:'hejian',bar:何建'};
console.log(foo+bar);//輸出hejian何建
注意:物件的解構與陣列有一個重要的不同。陣列的元素是按次序排列的,變數必須與屬性同名,才能取到正確的值
圓括號的使用
如果在解構之前就定義了變數,這時候你再解構就會出現問題。以下是錯誤程式碼,編譯時會報錯
let foo;
{foo}= {foo:'hejian'};
console.log(foo);
要解決報錯使程式正常,我們只要在解構的語句外邊加一個圓括號就可以
let foo;
({foo}= {foo:'hejian'});
console.log(foo);
字串結構
在es6中字串也是可以解構的,這是因為此時字串被轉換成一個類似陣列的物件
const [a,b,c,d,e,f]="hejian";
console.log(a);
console.log(b);
console.log(c);
console.log(d);
console.log(e);
console.log(f);