JavaScript 高級篇之函數 (四)
2024-05-06 14:22:11
供稿:網友
1、函數的創建
由于前面已經用了很多的函數,我就不在這里多分享了。
2、嵌套函數
代碼如下:
function china()
{
function people()//嵌套函數,只有china用它
{
document.write("我的心愿是當杜甫,最近網上他的漫畫,他活的好瀟灑");
}
people();
}
3、函數的直接量
Javascript允許函數用直接量來定義,說白了就是一個表達式,(匿名函數)。細節:匿名函數以后會用,要明白!
代碼如下:
function china(people) //函數聲明
{
return peole;
}
var fun = function(people){return people;};//通過表達式聲明。效果等同
4、函數的參數(這里大家要注意)
當你調用一個函數的參數少于聲明的參數個數是,其它的參數就是一個undefined的值。
代碼如下:
//打印函數
function displayArray(arr)
{
if(!arr)return;
for(var num =0;num<arr.length;num++)
{
document.write("Num is "+ arr[num]+ "/t");
}
document.write(" "+"<br />");
}
var array = [2,32,14,57,6];
function borrowArray(from,/*optional*/to)
{
if(!to) to = []; //to = to||[] 效果是等同的
for(var element in from) //使用枚舉遍歷數組
to.push(from[element]);//將元素添加到數組
return to;//返回
}
var returnnumber = borrowArray(array);//執行
displayArray(returnnumber);//打印
//輸出:Num is 2 Num is 32 Num is 14 Num is 57 Num is 6
5、可變的參數(Arguments 對象)
第一次看到這里我也暈了,怎么參數還變的呢,多白了,這個argument對象就是函數參數的管理者,比如你有一個函數,定義了3個參數,那argument就有一個和你定義的參數,一樣的數據集。
要注意:arguments標識符在函數體內才有效的。你也可以就把它當成是函數的屬性吧!
代碼如下:
function checkArgument(x,y,z)
{
if(arguments.length != 3) throw new Error("參數不匹配"); //檢查參數是否合法,挺好用吧!
return x+y+z;
}
下面的例子是一個比較數字大小的例子,參數是可以變的。
代碼如下:
function compareMaxNumber()
{
var temp = Number.NEGATIVE_INFINITY;//表示javascript最小的復數
for(var arg=0;arg<arguments.length;arg++)
{
if(arguments[arg]>temp) temp = arguments[arg];
}
return temp; //返回參數中最大的數字
}
document.write(compareMaxNumber(2,34,5,23,766,1000)+"<br />");//這里的參數可以有很多,輸出1000
6、將對象屬性作為參數
代碼如下:
function displayArray(arr) //打印函數
{
if(!arr)return;
for(var num =0;num<arr.length;num++)
{
document.write("Num is "+ arr[num]+ "/t");
}
document.write(" "+"<br />");
}
//
function copyArray(from,from_start,to,to_start,length)//復制數組
{
for(var i = from_start; i <length;i++)