2019-01-27 回答 参数是函数定义时的变量名,而 arguments 的值是函数调用时赋予的。 function myFunction(parameter1, parameter2) { console.log(arguments[0]) // 'argument1' } myFunction('argumen ..

参数和 arguments 有什么区别

本贴最后更新于 268 天前,其中的信息可能已经事过境迁

2019-01-27

回答

参数是函数定义时的变量名,而 arguments 的值是函数调用时赋予的。

function myFunction(parameter1, parameter2) {
  console.log(arguments[0]) // "argument1"
}
myFunction("argument1", "argument2") 

加分回答

var args = Array.from(arguments);
var args = [...arguments];

返回总目录

每天 30 秒

  • 30Seconds

    精选的常见前端问题集,帮助您踏踏实实走好每一步。

    英文原文请看 30-seconds

    294 引用 • 290 回帖 • 6 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    436 引用 • 1025 回帖 • 860 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    227 引用 • 1252 回帖 • 306 关注
4 回帖
请输入回帖内容...
  • huazhi 1

    补充一下,非严格模式下且参数传入时,参数和 arguments 双向绑定,
    否则相互独立;

    // 非严格模式下
    function a1(x) { 
    	x = 2; 
    	console.log(x, arguments[0]); 
    } 
    // 参数缺省
    a1(); // 2 undefined  
    // 传入参数
    a1(4); // 2 2
    function a2(x) { 
    	arguments[0] = 2; 
    	console.log(x, arguments[0]); 
    } 
    // 参数缺省
    a2(); // undefined 2
    // 传入参数
    a2(4); // 2 2
    
    

    严格模式下,都是相互独立

    // 严格模式
    function a3(x) { 
    	'use strict';
    	arguments[0] = 2; 
    	console.log(x, arguments[0]); 
    } 
    // 参数缺省
    a3(); // undefined 2
    // 传入参数
    a3(4); // 4 2
    
    function a4(x) { 
    
    	'use strict';
    	x = 2; 
    	console.log(x, arguments[0]); 
    } 
    // 参数缺省
    a4(); // undefined 2
    // 传入参数
    a4(4); // 2 4
    
    
    1 回复
  • Vanessa

    嗯,对的。 use strict 的作用