ES6筆記 函式

2021-10-04 06:56:21 字數 1499 閱讀 1861

函式預設引數:

在es5中,我們給函式傳引數,然後在函式體內設定預設值,如下面這種方式。

function a(num, callback) 

callback(num * num)

}a() //es5: 49,不傳參輸出預設值

而在es6中,我們使用新的預設值寫法:

function a(num = 6, callback = function (data) ) 

a() //es6: 36, 不傳參輸出預設值

使用es6的預設值寫法可以讓函式體內部的**更加簡潔優雅

塊級函式

嚴格模式下:在es6中,你可以在塊級作用域內宣告函式,該函式的作用域只限於當前塊,不能在塊的外部訪問。

"use strict";

if(true)

}

非嚴格模式:即使在es6中,非嚴格模式下的塊級函式,它的作用域也會被提公升到父級函式的頂部。建議盡量使用嚴格模式。

箭頭函式(=>)

const arr = [5, 10]

const s = arr.reduce((sum, item) => sum + item)

console.log(s) // 15

箭頭函式提供了一種更加簡潔的函式書寫方式;當箭頭函式沒有引數或者有多個引數,要用 () 括起來。

當箭頭函式函式體有多行語句,用 {} 包裹起來,表示**塊,當只有一行語句,並且需要返回結果時,可以省略 {} , 結果會自動返回。

var f = (a,b) => 

f(6,2); // 8

當箭頭函式要返回物件的時候,為了區分於**塊,要用 () 將物件包裹起來

// 報錯

var f = (id,name) => ;

f(6,2); // syntaxerror: unexpected token :

// 不報錯

var f = (id,name) => ();

f(6,2); //

注意點:沒有 this、super、arguments 和 new.target 繫結。

var func = () => 

func(55) // window

var func = () =>

func(55); // referenceerror: arguments is not defined

箭頭函式和普通函式的區別是:

1、箭頭函式沒有this,函式內部的this來自於父級最近的非箭頭函式,並且不能改變this的指向。

2、箭頭函式沒有super

3、箭頭函式沒有arguments

4、箭頭函式沒有new.target繫結。

5、不能使用new

6、沒有原型

7、不支援重複的命名引數。

培訓ES6筆記

1 剩餘操作符 let rest function a,rest rest 1,2,3,4,5 傳入引數 let print function a,b,c print 1,2,3 print 1,2,3 var m2 math.max 8,9,4,1 可以替代concat var arr1 1,3 ...

ES6筆記 物件

依據阮一峰教程摘取的自己可能用到的特性 屬性的簡潔表示法 function f x,y 等同於 function f x,y f 1,2 object方法簡寫 const o 等同於 const o object.assign 可列舉物件的合併 同名屬性的合併 淺拷貝const target con...

ES6筆記(解構)

1 解構 解構通俗點說,就是通過一種特定格式,快捷的讀取物件 陣列中的資料的方法 基本用法 如果右邊是物件,左邊也要用物件的格式,解構出來就是變數了,再也不是屬性了 解構物件 var ouser es5讀資料的方法 console.log ouser name ouser age aaa 20 le...