js的参数理解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js的参数理解相关的知识,希望对你有一定的参考价值。

ECMAScript内的参数在内部使用一个数组来表示的,在函数内可以通过arguments对象来访问这个参数数组,从而传递给函数的每一个参数

function doADD () {
    if (arguments.length == 1) {
        alert(arguments[0] + 10);
    } else if (arguments.length == 2){
        alert(arguments[0] + arguments[1] );
    }
}

doADD(10);             //20
doADD(30,20);          //50

另外,arguments 对象还可以和命名参数一起使用

function doADD (num1,num2) {
    if (arguments.length == 1) {
        alert(arguments[0] + 10);
    } else if (arguments.length == 2){
        alert(arguments[0] + arguments[1] );
    }
}

arguments 的值和对应命名参数的值保持同步

arguments对象的长度是由传入的参数个数决定的,不是由定义函数时候的命名参数个数决定的

没有传递命名参数将会被自动赋予undefined值

所有参数传递的都是值,不可能通过引用传递参数(

原始类型的内容是存储在栈中;而对象的内容是存储在堆中,指向堆的地址存储在栈中。
原始类型传递的是存储在栈里的内容,对象传递的是存储在栈里的地址, 都是copy栈里的值来传递, 都是值传递。


以上是关于js的参数理解的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

Vue.js中子组件向父组件传递信息。

XSS:如何从 C# 中的字符串中删除 JS 片段?

JS最佳实践

VSCode自定义代码片段——JS中的面向对象编程

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js