在JS中,傳入的函數的參數個數可以與定義函數的個數不一致,那麼對於傳入的實參的引用,則是arguments對象。然而改對象在嚴格模式和非嚴格模式下是由區分的:
1 在嚴格模式下arguments作為了一個保留字,那麼如果在定義arguments相關的變量和函數,則會報語法錯誤。
2 arguments在嚴格模式下屬於傳入的實參對象,並且是不可變的,即不可在函數內部通過arguments來修改實參值。
如:
function test1(a){
“use strict”;
arguments[0]=34;
console.log(a);
}
test1(23),則函數的輸出結果為23.
3 禁止使用arguments.callee,caller,在函數內部不能通過這種方式獲取自己的引用了