JavaScript函數(shù)
一、函數(shù)的作用
通過函數(shù)可以封裝任意多條語句,而且可以在任何地方、任何時候調(diào)用執(zhí)行。
二、函數(shù)的定義
函數(shù)使用function聲明,后跟一組參數(shù)一級函數(shù)體,語法如下:
function functionName([arg0,arg1,…argn]){
statements
}
說明:
1、functionName是要定義的函數(shù)名,屬于標(biāo)識符
2、[]中的arg0,arg1,…argn為函數(shù)的參數(shù),不是不需的
3、[]只說明里面的內(nèi)容不是必須的,它不是語法
三、函數(shù)的調(diào)用
語法:
函數(shù)名([arg1,arg2,…argn])
//聲明一個函數(shù)
function myFun(){
alert("我是一個函數(shù)");
}
//調(diào)用函數(shù)
myFun();
//聲明一個帶有參數(shù)的函數(shù)
function add(num1,num2){
var sum=num1+num2;
alert(num+'和'+num2+'的和是'+sum);
}
add(3,5);
四、函數(shù)的返回值
任何函數(shù)在任何時候都可以通過return語句后跟要返回的值來實現(xiàn)返回值。
說明:
1、函數(shù)會在執(zhí)行完return語句之后停止并立即退出。
2、return語句也可以不帶有任何返回值,一般用于需要提前停止函數(shù)執(zhí)行而又不需要返回值的情況下。
function add(num1,num2){
var sum=num1+num2;
return sum;
}
console.log(add(3,5));
alert(add(3,5));
var s=add(3,5);
console.log(s);
document.write(s);
function myFunction(arg){
//如果arg是非數(shù)字,不做任何操作;否則返回arg的2倍
if(isNaN(arg)){
return;
}
return arg*2;
}
myFunction("abc");
五、JavaScript中的參數(shù)
arguments:
ECMAScript中的參數(shù)在內(nèi)部用一個數(shù)組來表示,在函數(shù)體內(nèi)通過arguments對象來訪問這個數(shù)組參數(shù)。
說明:
1、arguments對象只是與數(shù)組類似,并不是Array的實例。
2、[] 語法訪問它的每一個元素。
3、length屬性確定傳遞參數(shù)的個數(shù)。
function inner(num1,num2){
console.log(num2);
}
inner(10); //undefined
function inner1(){
//arguments對象管理參數(shù)
console.log(arguments.length);
console.log(arguments[0]);//索引是從0開始的正整數(shù) 10
console.log(arguments[2]);//undefined
}
inner1(10,5);//2
function add(num1,num2){
console.log(num1);
}
add(55,88);//55
/**
* 嚴(yán)格模式:如果聲明了嚴(yán)格模式,即使通過arguments的形式修改了參數(shù),還是原來的值;
* 在非嚴(yán)格模式下,arguments可以通過下標(biāo)的形式修改傳遞進(jìn)來的參數(shù)。
*/
function add1(num1,num2){
arguments[0]=99;
console.log(num1);//99
}
add(55,88);//99
求任意一組數(shù)的平均值:
function getAvg(){
//console.log(arguments.length);
var sum=0,len=arguments.length,i;
for(i=0;i<length;i++){
//console.log(arguments[i]);//拿到每個數(shù):5,66,45,32,88
//sum=sum+arguments[i];
sum+=arguments[i];
}
return sum/len;
}
var avg = getAvg(5,66,45,32,88);
console.log(avg);