美文网首页Web 前端开发 让前端飞
JavaScript中的函数(一):实参和形参

JavaScript中的函数(一):实参和形参

作者: 河的左岸 | 来源:发表于2017-06-11 00:15 被阅读0次

JavaScript中的函数定义 不用指定形参的类型,调用也不对实参做任何类型检查,甚至连实参个数都不做检查。看看,多么粗暴和自由啊。

1 可选形参

当调用参数个数不够时,可以使用 /* optional */来定义可选参数。
传入形参时,基础类型是传值, 其他是传地址

function getPropertyNames(o, /* optional */ a) {
    a = a || []
    a.push("Adress")
    for(var i in o) {
        a.push(o[i])
    }
    return a;
}

// 调用
var a,b,c;
a = getPropertyNames([1,2]);
console.info(a);

var arr = ["name"]
b = getPropertyNames(["b"], arr);
console.info(b,arr);

运行结果:

["Adress", 1, 2]
["name", "Adress", "b"] ,["name", "Adress", "b"]

说明

  • a = a || [] 是一种惯用用法,使用前a必须要先声明,这里a作为形参,相当于var a
  • 实际运行结果,表明参数a是传地址

2 实参

2.1 可变实参(个数)

function max( /*...*/ ) {
    var max = Number.NEGATIVE_INFINITY;
    console.info(max);

    for (var i = 0; i < arguments.length; i++) {
        if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;

}

console.info(max(10, 6, 80))

结果:
80

2.2 实参内置对象

arguments 参数数组

如果实际参数传入的个数大于函数定义的形参个数,多出的可以使用arguments[i]来获取,arguments是指向实参对象的引用(传地址:改变arguments[i],实参也会一并改变)

callee 和 caller属性

ECMAScrip5严格模式下,这两个属性不可用。非严格模式下,callee表示当前正在执行的函数。

相关文章

  • OC内存区域

    c语言中形参和实参 形参 form parameter实参 real parameter出现在函数定义中的...

  • Javascript学习笔记——8.3 函数的实参和形参

    函数声明里的参数叫形参,函数调用里的参数叫实参。 Javascript函数定义不指定形参的类型,函数调用也不对实参...

  • c语言函数

    [if !supportLists]1.[endif]值传递:(单向传递实参->形参)关于函数调用过程中形参和实参...

  • javascript学习笔记--函数的实参可以是任何类型

    函数有实参和形参: 以上函数中,a,b是形参,2,3是实参。函数的实参可以是任何值:1.可以是数值: 2.可以是字...

  • python实参与形参

    1.形参与实参 name是形参,Neil是实参,greet是一个函数,Neil的值传给函数,保存在形参中2.位置实参

  • JavaScript中的函数(一):实参和形参

    JavaScript中的函数定义 不用指定形参的类型,调用也不对实参做任何类型检查,甚至连实参个数都不做检查。看看...

  • 形参与实参 

    值调用 值调用就是调用函数时,给形参分配内存空间,将实参拷贝给形参,之后的函数执行中形参和实参就脱离了关系,谁都不...

  • Python函数-2·函数的参数

    一、形参和实参概述: 形参:定义 函数时,小括号中的参数,是用来接收参数用的,在函数内部 作为变量使用 实参:调用...

  • Javascript中对arguments的一点点理解

    Javascript中的arguments对象 实参和形参的同步性 实参是存储在arguments对象中,argu...

  • [进阶]C++:函数

    函数基础 函数包括:返回类型、函数名字、0个或多个形参组成的列表 形参和实参 实参是形参的初始值 局部静态对象 在...

网友评论

    本文标题:JavaScript中的函数(一):实参和形参

    本文链接:https://www.haomeiwen.com/subject/wsyxqxtx.html