函数的参数分为形参和实参。
形参:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。
实参:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。
// 函数内部是一个封闭的环境,可以通过参数的方式,把外部的值传递给函数内部 // 带参数的函数声明 function 函数名(形参1, 形参2, 形参3...) { // 函数体 } // 带参数的函数调用 函数名(实参1, 实参2, 实参3); 形参1 = 实参1 形参2 = 实参2 形参3 = 实参3 ...
注意事项:
函数最终的运算结果由实参所解决定;
不论形参还是实参,都不需要关键字“var”的显示声明,函数的参数只能在函数内部访问。
当参数非常多时,想要不在通过位置来匹配参数,想让参数具有确定性,那么可以使用对象作为参数,然后就可以通过属性名key来匹配。
function fn(obj) { console.log(obj.name,obj.sex,obj.age) } var obj = { name:'张飞', sex:'男', age:88 } fn(obj) // 张飞 男 881、es5: 三目运算符,逻辑或运算符
三目运算符
function fn(a, b) { a = (a == undefined ? 0 : a); b = (b == undefined ? 1 : b); console.log(a, b) } fn() // 0,1 fn(5,6) // 5,6逻辑或运算符
function fn(a,b) { a = a || 'aa'; b = b || 'bb'; console.log(a, b) } fn() //aa bb fn(5,6) //5 6缺点:对于0.-0,null,"",undefined,NaN...逻辑运算结果全为false
2、es6: 在参数列表里面赋值
function fn(a = 0, b = 0) { console.log(a + b) } fn() // 0 fn(5, 6) // 11arguments代表了一个函数的所有参数,他是一个类似数组的东西,可通过下标取值。在我们不知道具体的参数个数时,他尤为有用。
他是一个类似数组的东西
可以通过下标取值
arguments[0]就是第一个参数,arguments[1]就是第二个参数
将arguments转换为一个数组
方法一:Array.prototype.slice.call(arguments)
可通过数组原型上得slice方法截取arguments中所有的内容,然后作为一个数组返回,如下:
方法二:Array.from(arguments)