Javascript函数/return返回值与arguments对象

maolai web前端Javascript函数/return返回值与arguments对象已关闭评论145阅读模式

函数是定义一次但却可以调用或执行任意多次的一段JS代码。函数有时会有参数,即函数被调用时指定了值的局部变量。函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值。

一、函数声明

函数对任何语言来说都是一个核心的概念。通过函数可以封装任意多条语句,而且可以在任何地方、任何时候调用执行。ECMAScript 中的函数使用function关键字来声明,后跟一组参数以及函数体。

function box(){                                //没有参数的函数
alert('只有函数被调用,我才会被之执行');
}
box();                           //直接调用函数
function box(name, age){                           //带参数的函数
alert('你的姓名:'+name+',年龄:'+age);
}
box('你的名字',28);                           //调用函数,并传参

二、return 返回值

带参和不带参的函数,都没有定义返回值,而是调用后直接执行的。实际上,任何函数都可以通过 return 语句跟后面的要返回的值来实现返回值。

function box(){                           //没有参数的函数
return '我被返回了!';                           //通过 return 把函数的最终值返回
}
alert(box());                           //调用函数会得到返回值,然后外面输出
function box(name, age){                           //有参数的函数
return '你的姓名:'+name+',年龄:'+age;               //通过 return 把函数的最终值返回
}
alert(box('你的名字', 28));                           //调用函数得到返回值,然后外面输出

我们还可以把函数的返回值赋给一个变量,然后通过变量进行操作。

function box(num1, num2){
return num1 * num2;
}
var num=box(10, 5);                           //函数得到的返回值赋给变量
alert(num);

return 语句还有一个功能就是退出当前函数,注意和break 的区别。PS:break用在循环和switch分支语句里。

function box(num){
if (num<5) return num;                           //满足条件,就返回 num
return 100;                           //返回之后,就不执行下面的语句了
}
alert(box(10));

三、arguments 对象

ECMAScript 函数不介意传递进来多少参数,也不会因为参数不统一而错误。实际上,函数体内可以通过 arguments 对象来接收传递进来的参数。

function box(){
return arguments[0]+'| '+arguments[1];                           //得到每次参数的值
}
alert(box(1,2,3,4,5,6));                           //传递参数

arguments 对象的 length 属性可以得到参数的数量。

function box(){
return arguments.length;                           //得到6
}
alert(box(1,2,3,4,5,6));

我们可以利用 length 这个属性,来智能的判断有多少参数,然后把参数进行合理的应用 。比如,要实现一个加法运算,将所有传进来的数字累加,而数字的个数又不确定。

function box(){
var sum=0;
if (arguments.length==0) return sum;                           //如果没有参数,退出
for(var i=0;i<arguments.length; i++) {                           //如果有,就累加
sum=sum+arguments[i];
}
return sum;                           //返回累加结果
}
alert(box(5,9,12));

ECMAScript 中的函数,没有像其他高级语言那种函数重载功能。

function box(num){
return num+100;
}
function box(num){                           //会执行这个函数
return num+200;
}
alert(box(50));                           //返回结果

 
maolai
  • 本文由 maolai 发表于 2016年7月19日 20:08:42
  • 转载请务必保留本文链接:http://www.bokequ.com/120.html