1. 程式人生 > >es6+最佳入門實踐(1)

es6+最佳入門實踐(1)

lan 地址 ref 命令 發生 實踐 常量 class 作用

1.let和const

1.1.let和塊級作用域

在es5中,js的作用域分為全局作用域和局部作用域,通常是用函數來區分的,函數內部屬於局部作用域,在es6中新增了塊級作用域的概念,使用{}括起來的區域是一個塊級作用域

{
    var a = 10
}
// 輸出10
console.log(a) 

如果上述代碼中定義變量的時候使用let,在外面使用變量a就會報錯

{
    let a = 10
}
// 以下輸出會報錯
console.log(a) 

es6中新增了塊級作用域,let定義的a只能在當前的{}中使用,在括號外面會報錯

註意: 不能重復去定義一個變量,例如,下面這種寫法就會報錯

let b = 10
let b = 20

如上代碼,重復定義一個變量b會報錯

1.2.const命令

const命令和let命令的區別是const定義的是常量,let定義的是變量,常量通常是不會被修改的

# 定義常量PI
const PI = 3.1415926
console.log(PI)

const 也是在當前塊級作用域中有效

{
    const PI = 3.1415926
}
console.log(PI)

如果像上面代碼中那樣寫會報錯,const在塊級作用域中定義,就不能在外面打印,否則會報錯

註意1:常量是不能被修改的(存儲基本數據類型的時候),如果試圖去修改它,會報錯,但是如果存儲的是對象,那麽引用不可以被改變,至於對象裏面的數據如何變化,是沒有關系的

const PI = 3.14
//這裏會報錯,因為存儲的是基本數據類型 字符串
PI = 3.2  

//這樣寫是會報錯的,引用關系被改變了
const BASE = {}
BASE = {}   //這裏直接賦值一個新對象 引用關系發生變化 會報錯

//如果只改變對象中的數據,那是不會報錯的,例如下面這樣寫

BASE.a = 123  //這裏只是給對象添加了屬性 並沒有改變對象引用

註意2: const 也不能重復定義,否則會報錯

const PI = 3.14
const PI = 3.14  // 這裏也會報錯

註意3: const定義常量時必須賦值

const PI
PI = 3.14 //這裏也會報錯

視頻教程地址:http://edu.nodeing.com/course/50

es6+最佳入門實踐(1)