从ES6开始弱化arguments的作用

作者:代码拾荒

时间:2026-10-26

浏览:251

ES6通过引入箭头函数和形参默认值,刻意弱化了arguments对象与形参的映射关系。在严格模式及ES6新语法下,修改arguments不再影响实参,反之亦然。本文解析这一变化背后的机制及严格模式下的限制。

文章目录

从ES6开始弱化arguments的作用

主要通过以下几种手段实现:

  • 箭头函数没有arguments这个2.2 隐式参数
  • 第二,函数形参可以设置默认值。
  • 第三,利用数组解构方式处理参数。
function test(...arr) {
  console.log(arr) // [[1, 3], 'c'] 是一个二维数组
}
test([1, 3], 'c')

实际上,从ES5引入严格模式起,就已经开始限制对的操作,禁止其拥有与形参的共享及映射关系。

function test(a = 100) {
  arguments[0] = 10
  console.log(a, arguments[0])
}
test(1)

在上述代码中,输出结果为1和10。可以看到,修改并未改变变量a的值。然而,如果取消形参的默认值设置,打印结果将变为10和10。这表明ES6语法刻意屏蔽了对形参的映射作用。

当然,如果在ES5环境中使用严格模式,同样会屏蔽的作用。

function test3(a) {
  "use strict"
  arguments[0] = 10
  console.log(a, arguments[0])
}
test3(1)

甚至在严格模式下,尝试访问arguments.callee也会直接报错。

从ES6开始弱化arguments的作用

以上就是从ES6开始弱化arguments的作用的详细内容,更多关于ES6弱化arguments的资料请关注本站其它相关文章!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章