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用來表示尚未存在的物件,常用來表示函式企圖返回乙個不存在的...