1.2.3.10.'arguments' 與 spread
參數 (arguments)
函數執行時自動建立好
在JavaScript中, 參數可以選擇要不要傳入
境, 放到執行堆中
如同前述的範圍鏈, 當執行環境被建立時會產生幾樣東西:
1.變數環境 (Variable environment), 外部環境 (Outer environment)
當在變數環境找不到變數時, 會到所參照的外部環境去尋找
2.this
不須宣告, 由JavaScript engine產生, this依據函數的呼叫方式會指向不同的物件
3.arguments
包含所有傳入函數的參數
function greet(firstname, lastname, language){
console.log(firstname);
console.log(lastname);
console.log(language);
}
//印出:
//undefined
//undefined
//undefined
//因為hoisting的緣故, 參數會在執行環境被建立時被給予初始值undefined
greet();
//印出:
//'John'
//undefined
//undefined
greet('John');
//預設函數的寫法
//1.不是每個瀏覽器都支援的做法
function greet(firstname, lastname, language = 'en'){
console.log(firstname);
console.log(lastname);
console.log(language);
}
//2.預設參數的做法
function greet(firstname, lastname, language){
//如果language是undefined就會被強制轉型為false
language = language || 'en';
console.log(firstname);
console.log(lastname);
console.log(language);
}
function greet(firstname, lastname, language){
//如果language是undefined就會被強制轉型為false
language = language || 'en';
if (argements.length === 0){
return;
}
console.log(firstname);
console.log(lastname);
console.log(language);
console.log(argements);
}
//印出:
//'John'
//undefined
//undefined
//['John'] (array-like)
greet('John');
Last updated
Was this helpful?