1、預設引數
es5的時候,若呼叫make(5),沒有給引數b賦值,系統會給乙個預設值undefined,下面**如果傳入b為0或者其他假值,則b取2000,如果時make(5,0),那麼傳進去的0不能作為b的值,那麼傳進去毫無意義。
function make
(a,b)
es6中,不傳b值的話,b值就取2000,只有當不為第二個引數傳入值或不為第二個引數傳入undefined時才會使用b的預設值2000
function make
(a,b =
2000
)
2、擴充套件運算子 三個點(…)
物件中的擴充套件運算子(..
.)用於取出引數物件中的所有可遍歷屬性,拷貝到當前物件之中
let bar =
;let baz =};
//
const
[first,..
.rest]=[
1,2,
3,4,
5];first // 1
rest // [2, 3, 4, 5]
3、塊級函式
嚴格模式下,塊級函式es5會報錯,es6不會,且函式提公升至塊級區域頂部
if
(true)
let m = function do()
}
非嚴格模式下,es6不會,且函式提公升至全域性作用域頂部
if
(true)
}console.
log(
typeof dosomething)
;// "function" //因為被提公升到了全域性作用域,所以塊級作用域外也可以訪問
4、箭頭函式
沒有this,super,arguments,new.target繫結
沒有原型
不能通過new關鍵字呼叫,沒有[[construct]]方法,所以不能被用作建構函式
不可以改變this的繫結
不支援arguments物件
不支援重複的命名引數
ES6 中的箭頭函式
定義乙個箭頭函式很簡單,基本語法是 param param param expression param 是引數,根據引數個數不同,分這幾種情況 當然,和普通函式一樣,箭頭函式也可以使用 es6 新增的 預設引數 和 剩餘引數 var func1 x 1,y 2 x y func1 得到 3 var...
ES6中函式的擴充套件
一 函式引數 1 引數預設值 基本用法 function sum x,y 1 解構預設值 function sum function sum1 function sum2 預設引數的位置在尾引數的位置,且不計入length中。2 rest引數 function add rest console.lo...
ES6中函式的擴充套件
let fn num1,num2 let fn num1 num1 num2簡寫注意事項 省略小擴號 當引數只有乙個時 省略大擴號 當函式體只有一句時,當函式體只有一句時,且是return的返回值時,return省略 返回的物件格式 引數 let arr 0,1,2,3 var obj arr.ma...