let 關鍵字就是 var 的公升級版,它具有以下特點:
let 的作用域
以前我們實現點乙個按鈕,就彈出當前按鈕的索引值,使用的如下**:
for
(var i =
0; i < btns.length; i++)}
)(i)
}
這是運用了立即執行函式造成閉包,給每個按鈕分配了乙個 i,這裡的 i 都是函式級作用域
我們將 var 變成 let:
for
(let i =
0; i < btns.length; i++
)}
因為 let 建立的 i 是塊級作用域,所以也能實現效果
const 關鍵字也是 var 的公升級版,它具有以下特點:
let arr =[1
,3,5
];let[a, b, c]
= arr;
console.
log(a)
;console.
log(b)
;console.
log(c)
;
注意:
let a =1;
let b =2;
let c =3;
let obj =
console.
log(obj.a)
;// 1
console.
log(obj.b)
;// 2
console.
log(obj.c)
;// 3
箭頭函式就是函式function() {}
的簡寫:() => {}
假如有乙個排序方法:
let arr =[12
,8,5
,23,6
];arr.
sort
(function
(n1, n2)
)
可以簡寫為:
console.
log(arr.
sort
((n1, n2)
=>))
;
箭頭函式向外層作用域一層層查詢this
,將找到的第乙個this
作為它的this
當我們要將乙個函式作為另乙個函式的引數時,使用箭頭函式
如:
settimeout
(function()
,1000
)
使用箭頭函式:
settimeout((
)=>
)
let obj =
,//es6寫法
eat()}
obj.
eat();
obj.
drink()
;
...
有兩個作用,分別是引數的收集與展開
function
fn(a, b,
...c)fn(
1,2,
3,4,
5,6,
7);
列印結果:
12[
3,4,
5,6,
7]
...c
表示將接收所有的第三個引數及以後的引數
let arr =[1
,2,3
]arr.
push
(...[4
,5,6
])console.
log(arr)
;
列印結果:
[1,
2,3,
4,5,
6]
let arr =[1
,2,3
];console.
log(
...arr)
;
map(對映)let arr =[1
,2,3
];//將arr中的1,2,3陸續作為value引數傳入到function中,對其進行操作後,返回的值將新增到乙個新陣列中
var arr1 = arr.
map(
function
(value)
else
})
如果符合條件則返回及格,如果不符合條件則返回不及格
如果不設定條件,則返回undefined
reduce
不管進去幾個,只出來乙個
var num =[1
,2,3
,4,5
];var res = num.
reduce
(function
(total, num),0
);console.
log(res); //15
模板字串可以在字串中插入變數,用$
加{}
表示
字串不能用引號,要用反單引號,即波浪鍵`
以前的引號只能接受一行內的資料,換行的話要用+
拼接,而反單引號能一次接收多行的字串
let a =2;
let b =3;
// es5:
console.
log(
'今天是星期'
+ a +
',我吃了'
+ b +
'個包子');
// es6:
console.
log(
`今天是星期
$,我吃了
$個包子`
);
json格式字串的鍵必須使用雙引號包裹
json物件的方法:
// 序列化,即將傳遞的內容轉換為字串
json
.stringify()
json
.stringify()
// 返回''
// 解序列化,將收到的字串轉換為非字串
json
.parse()
json
.parse(''
)// 返回
ES6 基礎語法
1 var vs let const var 可以定義全域性變數,與之不同,let的重要特性就是提供了塊級作用域和不具備變數提公升。const主要用於定義常量,常量顧名思義不是變數,意思就是一經定義,值就無法改變。首先弄明白塊級作用域 es5中有全域性作用域與函式作用域,塊級作用域是es6中的新語法...
ES6基礎語法
let 變數 不具備變數提公升特性 const 常量 引用位址不可改變 在宣告時必須被賦值 let和const都是塊級作用域 只在最靠近的乙個塊中 花括號內 有效 在es6中新增了模板字串拼接 var name kingfan var age 18 var msg 我是 今年 歲 console.l...
es6語法 基礎
let 1.let宣告的變數只能宣告一次,不能被重新定義 2.let定義的變數必須先定義再使用,不能在宣告之前訪問該變數 3.let定義的變數存在塊級作用域,不能被變數提公升,4.let在for迴圈外部不能被使用 所以for迴圈推薦使用let const的作用 定義常量 常量不允許重新賦值 cons...