引數預設值
未提供引數,或將引數值指定為undefined時,預設值會被使用。
function add(a, b = 2, c = 3)
add(1); //6
add(1,2); //6
add(1,undefined,4); //7
add(1,null,4);
引數預設值表示式
引數預設值除了是基本型別的值,也可以執行乙個函式來產生預設值。
function getvalue()
//未提供第二個引數時,getvalue()才會被呼叫
function add(a, b = getvalue())
console.log(add(1,1)); //2
console.log(add(1)); //6
getvalue()函式也可以返回可變的值。
let value = 5;
function getvalue()
function add(a, b = getvalue())
console.log(add(1,1)); //2
console.log(add(1)); //6
console.log(add(1)); //7
可以將前面的引數作為後面引數的預設值(反之,後面引數作為前面引數的預設值不行)
function add(a, b = a)
console.log(add(1,1)); //2
console.log(add(1)); //2
也可以將前面的引數a作為引數傳遞給乙個函式來產生引數b的值。
function getvalue(value)
function add(a, b = getvalue(a))
console.log(add(1,1)); //2
console.log(add(1)); //7
剩餘引數
剩餘引數由三個點(...)與乙個緊跟著的具名引數指定,它會是包含傳遞給函式的其餘引數的乙個陣列。
函式只能有乙個剩餘引數,並且它必須放在最後。
function add(a, ...last)
}}("f1");
console.log(f1.getname()); //f1
//箭頭函式
let f2 = ((name) =>
}})("f2");
console.log(f2.getname()); //f2
讀書筆記 深入理解ES6 (二)
1.更好的unicode支援。先說一下前提,在字串中,字串裡面的字元有兩種 一種是有乙個編碼單元16位表示的bmp字元 另一種是由兩個編碼單元32位表示的輔助平面字元。這兩種字元是不一樣的。1.1normalize 方法。這個方法接受乙個可選的字串,然後將該字串轉化為相應的標準unicode的形式,...
讀書筆記 深入理解ES6(一)
開篇詞 這是一篇關於 深入理解es6 的讀書筆記的第一篇,主要是讀第一章的筆記。該筆記基本上只記錄思路和核心知識點,具體內容可以參考書上的 和細節講解,以求達到提綱挈領和後期方便溫習的作用。1.var宣告和變數提公升 hoisting 機制。該節中,主要講述了作為原來es5中經常使用到的關鍵字 va...
深入理解ES6讀書筆記10 模組
模組使用不同方式載入的js檔案。模組化分為匯出 export 與匯入 import 兩個模組。特點 1 模組自動開啟嚴格模式 2 每乙個模組內宣告的變數都是區域性變數 3 模組中可以匯入和匯出各種型別的變數 4 每乙個模組只載入一次 是單例的 若再去載入同目錄下同檔案,直接從記憶體中讀取 5 對於需...