一道關於arguments的題目

下面直接上代碼函數

// 只傳第一個參數,第二參數不傳
function a (x, y) {
	arguments[1] = 10;
	console.log(x + y);
}
a(1);//  打印的是undefined
a(1, 2); // 打印的是11
  • 結論
  • 這個y參數和arguments的內存空間是獨立,可是他們的值是同步的
  • 此外需注意,若是y參數不傳,即便設置arguments[1]的值,也不會反應到y這個命名參數中,這是由於arguments對象的長度是由傳入的參數個數所決定的,不是由定義函數時的命名參數個數所決定的,因此第一次傳一個參數時會返回undefined
相關文章
相關標籤/搜索