1. 程式人生 > >ES6教學(二)

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);