ES6常用語法

2021-09-27 11:36:47 字數 4581 閱讀 3641

let宣告的變數不存在預解析

例如,使用var呼叫如下**,不會出錯

alert

(inum)

;var inum =10;

// 預解析 預編譯 不報錯

但是使用let會報錯

// let不能預解析  下面的寫法會報錯

alert

(inum)

;let inum =

10;

let宣告的變數不允許重複(同乙個作用域)

下面方式不會報錯

// 如下方式不會出報錯

var flag =

123;

var flag =

456console.

log(flag)

let宣告的變數不允許重複,下面的**會報錯

// let宣告的變數不允許重複,下面的**會報錯

let flag =

123;

let flag=

456console.

log(flag)

塊級作用域

以下**不會報錯

if

(true

)console.

log(flag)

以下**會報錯

if

(true

)console.

log(flag)

const宣告的常量不允許重新賦值,必須初始化

以下**會報錯

//常量不能修改

const i =10;

i=5;

變數的結構賦值

正常我們給三個變數a,b,c賦值是

var a =1;

var b =2;

var c =3;

var a =

1,b =

2, c =

3;

es6我們而可以這樣

// 陣列的結構賦值

var[a,b,c]=[

1,2,

3];let

[a,b,c]=[

1,2,

3];let

[a,b,c]=[

,2,]

;// 給a乙個預設值

let[a=

2,b,c]=[

,2,3

];

物件的結構賦值

如下根據物件內的名稱進行賦值

// 物件的結構賦值

let=

console.

log(name,age)

輸出:zhangsan 20

物件屬性別名

如果有了別名,那麼原來的名稱就不能用了。

如下,給name起了別名xm, 則name不能再用。

let

=console.

log(xm,age)

字串的結構賦值
let

[a,b,c,d]

='hello'

;console.

log(a,b,c,d,e)

;輸出:

h e l l o

把hello拆開 分別賦值給a,b,c,d,e

includes

1.判斷乙個字串當中是否包含指定字串

例如:判斷hello world字串是否包含world字串

console.

log(

'hello world'

.includes

('world'))

;輸出結果:

true

2.判斷字串指定位置是否包含指定字串

例如:判斷hello world字串從索引5開始,是否包含world字串

// 判斷hello world字串從索引5開始,是否包含world字串

console.

log(

'hello world'

.includes

('world',5))

;

startswith
判斷字串是否以指定子符串開頭

例如:判斷hello world字串是否以sta字串開頭

console.

log(

'hello world'

.startswith

('sta'))

;輸出:

true

endswith
判斷字串是否以指定子符串結束

例如:判斷hello world字串是否以world字串結尾

console.

log(

'hello world'

.endswith

('world'))

;輸出:

true

模板字串

沒有模板字串之前:

let obj =

let tag =

'姓名:'

+ obj.name +

'; 年齡'

+ obj.age;

console.

log(tag)

;

使用了模板字串後:

反引號標識模板,模板中通過 $ 方式填充資料

// 反引號標識模板,模板中通過 $ 方式填充資料

let temp =

`姓名:

$; 年齡

$;使用表示式$`

;console.

log(temp)

;

引數預設值

es6之前我們使用引數預設值的方式

function

foo(param)

// 列印haha

foo();

// 列印hehe

foo(

'hehe'

)

es6使用引數預設值

function

foo(param =

'haha'

)// 列印haha

foo();

// 列印hehe

foo(

'hehe'

引數結構賦值
// name的預設值為lisi,age的預設值為13

function

foo(

)foo()

;

rest引數 (剩餘引數的處理)
function

foo(a,

...param)

foo(1,

2,3,

4);輸出結果:

a [2,3

,4]

多餘的引數通過乙個集合[ ] 來裝

擴充套件運算子

function

foo(a,b,c,d,e)

foo(1,

2,3,

4,5)

;輸出結果:

15

如果我們要傳遞乙個陣列怎麼辦?

function

foo(a,b,c,d,e)

let arr =[1

,2,3

,4,5

];foo(

...arr)

;輸出結果:

15

擴張運算子的具體應用

合併陣列

let arr1 =[1

,2,3

];let arr2 =[4

,5,6

];let arr3 =

[...arr1,

...arr2]

;console.

log(arr3)

;輸出結果:[1

,2,3

,4,5

,6]

箭頭函式

正常我們定義乙個函式:

function

foo(

)foo()

;

使用箭頭函式定義:

let

foo=()

=> conlole.

log(

'hahaha');

foo(

);

箭頭函式的注意事項:

ES6常用語法

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

ES6常用語法

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

es6常用語法

es6常用語法 1.let const 塊級作用域,不能重複宣告,沒有提公升 const常量,引用型別 暫時性死區 2.字串拼接 兩個單引號 反的單引號 拼接字串 3.解構賦值 對稱賦值,更容易理解,乙個陣列 另外乙個陣列,乙個物件 另外乙個物件 4.展開運算子 複製陣列方便 var arr1 1,...