ES6學習筆記(五) 函式與物件

2021-07-12 06:41:27 字數 1690 閱讀 6522

function

log(x, y = 'world')

log('hello') // hello world

log('hello', 'china') // hello china

log('hello', '') // hello

function

foo()

foo({}) // undefined, 5

foo() // 1, 5

foo() // 1, 2

foo() // typeerror: cannot read property 'x' of undefined

rest引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中

function

push

(array, ...items) );

}var a = ;

push(a, 1, 2, 3)

將乙個陣列轉為用逗號分隔的引數序列

function

f(v, w, x, y, z)

var args = [0, 1];

f(-1, ...args, 2, ...[3]);

var arr1 = ['a', 'b'];

var arr2 = ['c'];

var arr3 = ['d', 'e'];

// es5的合併陣列

arr1.concat(arr2, arr3);

// [ 'a', 'b', 'c', 'd', 'e' ]

// es6的合併陣列

[...arr1, ...arr2, ...arr3]

// [ 'a', 'b', 'c', 'd', 'e' ]

const [first, ...rest] = [1, 2, 3, 4, 5];

first // 1

rest // [2, 3, 4, 5]

[...'hello']

// [ "h", "e", "l", "l", "o" ]

var f = v => v;

//等價於

var f = function

(v) ;

注意

函式體內的this物件,就是定義時所在的物件,而不是使用時所在的物件

不可以當作建構函式,也就是說,不可以使用new命令,否則會丟擲乙個錯誤

不可以使用arguments物件,該物件在函式體內不存在。如果要用,可以用rest引數代替

不可以使用yield命令,因此箭頭函式不能用作generator函式

用於物件的合併,將源物件(source)的所有可列舉屬性,複製到目標物件(target)

//同名屬性,後面覆蓋前面

var target = ;

var source1 = ;

var source2 = ;

object.assign(target, source1, source2);

target //

該方法實行的是淺拷貝,即如果源物件某個屬性的值是物件,那麼目標物件拷貝得到的是這個物件的引用

五 ES6之物件

j ascript中物件 var person 或 var name jack var age 20 var person console.log person.age 20es6中的簡潔表示 let name,age jack 20 let person 等同person console.log ...

ES6之 函式(五)

rest 引數 變數名 報錯 function f a,b,c 箭頭函式 箭頭函式的特點 案例 案例 1 varf v v 上面的箭頭函式等同於 varf function v letfun function fun 案例 2 沒有形參,並且函式體只有一條語句 letfun1 console.log...

ES6學習筆記(函式擴充套件)

1.預設引數function people people 輸出 3 30 people 輸出 undefined 302.擴充套件運算子 剩餘引數 在es6之前,如果要在方法內將多字符集成為乙個陣列,一般會使用以下寫法 function sum sum 1,2,123,qwer es6之後,使用運算...