ES6常用語法總結

2021-10-11 18:32:41 字數 2582 閱讀 5444

es6語法中,變數的宣告方式改變了,而新的宣告方式也帶來了一些新的特性,其中最重要的就是塊級作用域和不再具有變數提公升

我們都是到,用var宣告的變數會變成乙個全域性變數,但是用let和const申宣告的變數就只能在當前作用域使用,例如:

console.

log(a)

//20

cosnole.

log(a)

//a is not defined

同時,let 和 const宣告的變數也不再具有變數提公升

這裡還有乙個很有意思的事情,當let和for結合起來的時候會發士乙個很有意思的化學反應

如下**:

for

(var i =

0; i<

6;i++

),i*

1000)}

//輸出 6 6 6 6 6 6

for(

let i =

0; i<

6;i++

), i*

1000)}

//輸出:0 1 2 3 4 5

還有就是變數提公升,let 和 const 定義的變數不可以在使用後再宣告

這裡我們也得注意一下 let 和 const 的區別

let 定義的是乙個變數,而 const 定義的是乙個常量,是不可改變的

const 宣告的常量必須初始化,而 let 宣告的變數可以不用初始化

以前我們寫函式是這樣寫的

var

add=

function

(a,b)

//現在我們可以這樣寫

varadd

=(a,b)

=> a+b

箭頭函式可以替換掉函式表示式,但是不能替換函式宣告

還有值得注意的是this函式也不再具有 argument 物件

這件簡單的舉個例子

const obj =

//以前我們是這樣寫的

var name = obj.name

var age = obj.age

//es6這樣寫

let= obj

之前我們不能為函式指定乙個預設引數。es6則為我們解決了這樣的問題

function

add(a,b)

//es6

function

add(a =

10,b =20)

在es6中我們用 … 表示展開運算子,它可以將乙個陣列或者物件展開

例如:用於陣列的拼接

var arr1  =[1

,2,3

]var arr2 =

[...arr1,4,

5]console.

log(arr2)

//[1,2,3,4,5]

展開物件

const obj1 =

const obj2 =

在我們對於要傳入函式的引數數量未知時,可以採用剩餘引數來表示

function

add(

...num)

console.

log(

add(1,

2,3,

4))//10

es6針對函式字面量做了很多的簡化處理下面來簡單的舉幾個例子

在不使用class的情況下,我們時這樣來實現繼承的:

function

person

(name,age)

person.prototype.

getname

=function()

function

student

(name,age,number)

function

temp()

temp.prototype = person.prototype

student.prototype =

newtemp()

student.prototype.constructor = student

student.prototype.

getnumber

=function()

let student =

newstudent

("張三",20

,"001"

)console.

log(student.

getnumber()

)//"001"

console.

log(student.

getname()

)//"張三"

使用class我們這樣來實現繼承

class

person

,getname()

}class

student

extends

person

getnumber()

}

ES6常用語法

var var name woniu console.log name imooc let 塊級作用域 console.log name imooc let是塊級作用域,只有在括號內部才可以獲取到,外部是獲取不到的 const 塊級作用域 用處當我們很多人協作開發乙個專案的時候,希望乙個變數不會被修...

ES6常用語法

let宣告的變數不存在預解析 例如,使用var呼叫如下 不會出錯 alert inum var inum 10 預解析 預編譯 不報錯但是使用let會報錯 let不能預解析 下面的寫法會報錯 alert inum let inum 10 let宣告的變數不允許重複 同乙個作用域 下面方式不會報錯 如...

ES6常用語法

宣告變數let和const let宣告的變數不存在預解析 console.log flag var flag 123 let flag 456 let宣告的變數不允許重複 在同乙個作用域內 let flag 123 let flag 456 console.log flag es6引入了塊級作用域 ...