es6變數定義和賦值

2021-10-07 13:26:30 字數 3264 閱讀 8990

ecmascript 第六個版本

在es6之前,都是用 var宣告,但是它會變數提公升成為全域性變數。

functiona(

)else

}

其實是這樣的

functiona(

)else

//undefined

}

無論bool的值是true 或 false,b 都會被建立宣告。改寫成let function a()

else

}let沒有變數提公升,它的作用域是當前所在的**塊塊級作用域

es5只有全域性作用域和函式作用域,帶來一些不合理的場景。

(1)、變數提公升造成內部變數覆蓋外層的變數

var status=

true

;functionst(

) console.

log(status);​

}​st(

);//undefined(2)、變數i成為全域性變數 var arr=[1,2,3,4,5,6];

for(

var i=

0;i)console.

log(i)

//6es6塊級作用域function num()

console.

log(n)

;// 6

}

表明外層**塊不受內層**塊的影響,如果用 var 宣告,最後的值是7。內層作用域 可以 和 外層作用域 定義 同名 變數

}相同作用域不能重複宣告// 報錯

function

func()

// 報錯

function

func()

二、const 命令

const 宣告乙個唯讀常量,並且常量的值不能改變。

const a=

'hello word'

;a //hello word

a='hello es6'

;//報錯

const 宣告的變數不能改變值,所以const 宣告變數就必須初始化,不能以後賦值。

if

(true

)​a //報錯

const 只在宣告的塊級作用域內有效,不會變數提公升。

1、用$進行字串拼接和運算

//es5

var a =

'es5'

;var b =

'一起學習'

+ a +

'go'

;//es6

let c =

'es6'

;let d =

`一起學習

$go`;​

//運算

let e =1;

let f =2;

let result =`$

`;

2、常用方法

const es6 =

'hello es6'

//includes 是否存在

console.

log(es6.

includes

('h'))

// true

//startswith 判斷開頭

console.

log(es6.

startswith

('hello'))

// true

//endswith 判斷結尾

console.

log(es6.

endswith

('!'))

// true

// repeat: 複製字串 如果你是小數, math.floor(num) 來處理

console.

log(es6.

repeat(2

))// 'hello es6hello es6'

console.

log(es6.

repeat

(3.6))

// 'hello es6hello es6hello es6'

從陣列和物件中提取值,對變數進行賦值,這被稱為解構。

//物件

let=

;name //es6

age //3

//陣列

let[a, b, c]=[

1,2,

3];//左右兩邊形式必須統一

let[d,

[e, f]

, g]=[

1,[2

,3],

4];//預設值

let[h =1]

=[]h //1

let=

hello //es6

//使用圓括號

let es6;=;

//報錯

//解決錯誤

letes6;(

=);

五、擴充套件運算子和rest運算子擴充套件運算子 就是三個點…

//陣列

const a =[1

,2]const b =

[...a,3,

4]console.

log(b)

//[1, 2, 3, 4]

//物件

const c =

const d =

console.

log(d)

//

rest運算子 陣列或者物件除了某幾項的其他項

//陣列

const a =[1

,2,3

,4,5

]const

[b,...num]

=aconsole.

log(num)

//[2, 3, 4, 5]

//物件

const c =

const

=cconsole.

log(rest)

//

對於object,當然如果有重複的屬性名,後者會覆蓋前者

const first =

const second =

const total =

console.

log(total)

//

es6變數解構賦值

es6允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構。解構賦值在實際開發中可以大量減少我們的 量,並且讓我們的程式結構更清晰。陣列的解構賦值 let a,b 1 2 console.log a 1 console.log b 2 上面的 表示,可以從陣列中提取值,按照位置的物件...

ES6變數解構賦值

es6 允許按照一定模式,從陣列和物件中提取值,對變數進行賦值,這被稱為解構 es6之前我們申明多個變數需要按照下面的方法 let l a 1 let b 2 let c 3 let d 4 或者 let a 1,b 2,c 3,d 4 現在我們可以更加簡便 let a,b,c,d 1,2,3,4 ...

es6 變數解構賦值

1.陣列的解構賦值 等號兩邊的模式相同,左邊的變數就會被賦予對應的值 預設值 undefined型別只有乙個值,即undefined。當宣告的變數還未被初始化時,變數的預設值為undefined。null型別也只有乙個值,即null。null用來表示尚未存在的物件,常用來表示函式企圖返回乙個不存在的...