<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JavaScript Function</title>
</head>
<body>
<script>
/*函数是定义一次但却可以调用或执行任意多次的一段js代码;函数有时会有参数,即函数被调用时指定了值的局部变量,函数常常使用这些参数来计算一个返回值,这个值也成为函数调用表达式的值。*/
/*函数声明:通过函数可以封装任意多条语句,而且可以在任何地方,任何时候,任意多次,被调用执行;ECMAScript中的函数使用function关键字来声明,后跟一组参数以及函数体。*/
function box(){
document.write("函数被调用了" + '<br />');
} //定义没有参数的函数
box(); //直接执行函数
function box2(name, age){
document.write("姓名:" + name + " " + " " + "年龄:" + age + '<br />');
} // 定义有参数的函数
box2("cai", 24); //调用函数并(赋值给)传递参数
/*return返回值:带参数和不带参数的函数都没有定义返回值,而是调用函数后直接执行返回值的;
任何函数都可以通过return语句跟后面的要返回的值来实现返回值*/
function box3(){
return ('返回值');
}
document.write(box3() + '<br />');
function box4(name, age){
return ("姓名:" + name + " " + " " + "年龄:" + age);
}
document.write(box4("can", 28) + '<br />');
function box5(name, age){
return ("姓名:" + name + " " + " " + "年龄:" + age);
}
var num = box5("张三丰", 120 + '<br />');
document.write(num); //可以把函数的返回值赋给一个变量,再通过变量进行操作,(通过变量接收函数);
function box6(nu1, nu2){
return (nu1*nu2);
}
var shuzhi = box6(6, 9);
document.write(shuzhi + '<br />')
/*return语句还有一个功能就是退出当前函数;注意和break的区别:break用在循环和switch分支语句里;*/
function box7(num1) {
if(num1<6) return num1; //满足条件后返回return;
return ("没有满足第一个条件返回的值");
}
document.write(box7(4) + '<br />'); //返回之后就不会再执行之后的语句了;
/*arguments对象:ECMAScript函数不介意传递进来多少参数,也不会因为参数不统一而错误;实际上,函数体内可以通过arguments对象来接收传递进来的参数;*/
function arg(){
return (arguments[0] + '&' + arguments[1] + "><" + arguments[2]); //得到每次参数的值
}
document.write(arg(4, 5, 6, 7) + '<br />'); //多于或少于参数都不会报错;传递参数;
function argu(){
return (arguments.length);
}
document.write(argu(1,2,3,4,5) + '<br />'); //arguments对象的length属性可以知道参数的数量;
function argu2(){
var sum = 9;
if(arguments.length==0) return sum; //如果没有传递参数就退出函数;
for (var i=0; i<arguments.length; i++){
sum += arguments[i]; //如果有就累加
}
return sum; //在不确定函数参数个数的情况下,完成累加数的求和;
}
document.write(argu2(3, 4, 5, 6, 7)); /*利用length属性来智能的判断有多少个参数,然后把参数进行合理的应用;例如:要实现一个加法运算,把所有传进来的参数进行累加,而数值的个数又不确定*/
</script>
</body>
</html>