1、函数声明:通过函数可封装任意多条语句,且可在任意地方、任何时候调用执行。
eg. function box(){//无参函数
alert("只有函数被调用,我才会被执行");
}
box(); //直接调用函数
eg. function box(name,age){//带参函数
alert("姓名:"+name+",年龄:"+age);
}
box("张三",19);//传参调用函数
2、return返回值:带参或不带参的函数都没有定义返回值,而是调用函数直接执行。事实上任何函数都可通过return语句跟后面要返回的值来实现返回值。
eg. function box(){//无参函数
return("我被返回了");
}
alert(box()); //直接调用函数得到返回值并输出
eg. function box(name,age){//带参函数
return("姓名:"+name+",年龄:"+age);
}
alert(box("张三",19));//传参调用函数得到返回值并输出
eg. function box(num1,num2){//函数将返回值赋给变量,通过变量进行操作
return num1 * num2;
}
var num = box(10,5);//函数得到的返回值赋给变量
alet(num);//50
eg. function box(num){//此处的return可退出当前函数
if( num < 5) return num; //满足条件才返回num,此时num=10,不会小于5,所以返回100
return 100; //第一个操作数为false,直接返回地二个操作数。
}
alert(box(10)); //100
3、arguments对象:通过该对象接受传递过来的参数,不论多少也不论是否统一
eg. function box(){
return arguments[0]+'|'[+arguments[1]];//得到每次参数的值 1|2
}
alert(box(1,2,3,4,5,6));//传递参数后结果是 1|2
eg. function box(){
return arguments.length;//length属性得到参数数量6
}
alert(box(1,2,3,4,5,6));
eg.length属性扩展运用
function box4() {
var sum = 0;
if (arguments.length == 0) return sum;//若是没有参数,直接退出函数
for (var i = 0; i < arguments.length; i++) {//如果有参数就循环叠加,最后输出总和
sum = sum + arguments[i];
}
return sum;
}
alert(box4(2,6,9));//17
eg. function box5(su) {
return su + 100;
}
function box5(su) { //会执行这个函数,没有函数重载功能
return su +50;
}
alert(box5(150));//200
eg1. var getName = function(){
alert(1);
}
function getName(){
alert(2);
}
getName();//1
对比
eg2. function getName(){
alert(2);
}
var getName = function(){
alert(1);
}
getName();//1
eg1.和eg2.两次结果都是1说明声明式函数会被提前声明和定义,且在执行过程中可重新赋值