JS函数的参数对象arguments在严格模式下的限制

时间:2023-03-09 23:02:26
JS函数的参数对象arguments在严格模式下的限制

在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,在函数内部不能通过这种方式获取自己的引用了