2025年10月27日 星期一

關於 'arguments' 變數被超出範圍賦值

 關於 'arguments' 變數被超出範圍賦值

前言

  在之前的 關於修改 'arguments' 變數 提及可以修改 'arguments' 變數,既然 'arguments' 變數可以被賦值,如果超出範圍賦值會發生什麼事?在此把學習的過程做個紀錄。


內容

  範例如下

function call(){
  arguments[ 0 ] = 100;
  console.log( arguments.length );//0
  console.log( arguments[ 0 ] );//100
}
call();


 'arguments' 變數是以陣列的形式來存放,範例喚起時沒有傳入引數,所以對  'arguments' 變數賦值明顯是超出範圍的,接著用 arguments.length 來取得陣列的大小,會改變陣列大小嗎?結果是沒有!但是如果再度取得開始的賦值又會發現該賦值是有效的,所以 'arguments' 變數的陣列是特別的,就算陣列的大小改變了,  arguments.length 還是保存著引數被傳入的數量。


參考資料

[ developer.mozilla.org ] The arguments object


相關文章與資料

關於修改 'arguments' 變數

關於 Function 的 'arguments' 變數

沒有留言:

張貼留言