首頁  >  文章  >  web前端  >  JavaScript函數的一些注意要點小結及js匿名函數_javascript技巧

JavaScript函數的一些注意要點小結及js匿名函數_javascript技巧

WBOY
WBOY原創
2016-05-16 15:32:581157瀏覽

下面要跟大家介紹javascript函數

函數的基本語法是:

function functionName(arg0,arg1,...,argN) {
 statements
}

下面是個範例:

function str(name,age){
 document.write("hello my name is " + name + ". and i am " + age + " years old.");
}
str(" oliver",23); //hello my name is oliver. and i am 23 years old.

另外,任何函數在任何時候都可以透過return 語句後面跟著要傳回的值來實現回傳值。如:

function sum(num1,num2){
 return num1 + num2;
 alert("hello"); //返回return 之后不会继续执行alert
}
var result = sum(321,32);
document.write(result); //353

因為執行完return 語句之後停止並立即退出,所以位於return 語句之後的任何程式碼都不會執行。

當然,一個函數可以包含多個return 語句。如:

function conp(a,b){
 if (a > b){
 return a;
 }else if (a == b){
 return "equal";
 }else{
 return b;
 }
}
var result = conp(4,4);
document.write(result); //equal
var result = conp(321,4);
document.write(result); //321

另外,return 語句也可以沒有任何回傳值。這樣,就可以立即停止函數執行並且傳回undefined。如:

function conp(a,b){
 if (a > b){
 return;
 document.write("bad");
 }else{
 document.write(b);
 }
}
var a = conp(33,3);
document.write(a); //返回undefined 且不会出现"bad"

函數的參數

ECMAScript 函數的參數可以是任意多個,也可以是任何資料型態。它在函數體內可以透過arguments 物件來訪問,如第一個參數是arguments[0]、第二個是arguments[1]等等。命名的參數只是提供了便利,但不是必須的。如:

function greeting(){
 document.write("hello " + arguments[0] + ". you look " + arguments[1] + ".");
}
greeting("oliver","good"); //hello oliver. you look good.

另外,可以透過存取arguments 物件的length 屬性,得到有多少參數傳遞給了函數。如:

function countArguments(){
 document.write("there are " + arguments.length + " arguments here.");
}
countArguments(321,321,32,32); //there are 4 arguments here.

可以利用這一點與if 語句結合做判斷。如:

function count(){
 if (arguments.length == 1){
 document.write("you just have 1 arguments.");
 }else{
 document.write("you have many arguments.");
 }
}
count(321,321,321) //you have many arguments.

另外,arguments[] 可以與命名參數一起使用。

函數的重載(沒有重載)

如果定義了兩個名字相同的參數,則改名字只屬於後定義的函數。如:

function add(){
 document.write(arguments[0] + arguments[1]);
}
function add(){
 document.write(arguments[0] + 100);
}
add(321,2); //421 不会执行第一个函数(两个参数相加),只执行最后一个同名的函数(第一个参数加上100)

PS:JavaScript匿名函數

函數是JavaScript中最靈活的一種對象,這裡只是講解其匿名函數的用途。匿名函數:就是沒有函數名的函數。

1.1 函數的定義,先簡單介紹一下函數的定義,大致可分為三種方式

第一種:這也是最常規的一種

function double(x){
 return 2 * x; 
}

第二種:這種方法使用了Function建構函數,把參數列表和函數體都當作字串,很不方便,不建議使用。

複製程式碼 程式碼如下:

var double = new Function('x', 'return 2 * x;');

第三種:

複製程式碼 程式碼如下:

var double = function(x) { return 2* x; }

注意「=」右邊的函數就是一個匿名函數,創造完畢函數後,又將該函數賦給了變數square。

1.2 匿名函數的建立

第一種方式:就是上面所講的定義square函數,這也是最常用的方式之一。

第二種方式:

(function(x, y){
 alert(x + y); 
})(2, 3);

這裡建立了一個匿名函數(在第一個括號內),第二個括號用來呼叫這個匿名函數,並傳入參數。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn