JavaScript函數(shù)的一些注意要點(diǎn)小結(jié)及js匿名函數(shù)
下面給大家介紹javascript函數(shù)
函數(shù)的基本語法是:
function functionName(arg0,arg1,...,argN) { statements }
下面是個(gè)示例:
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.
另外,任何函數(shù)在任何時(shí)候都可以通過return 語句后跟要返回的值來實(shí)現(xiàn)返回值。如:
function sum(num1,num2){ return num1 + num2; alert("hello"); //返回return 之后不會(huì)繼續(xù)執(zhí)行alert } var result = sum(321,32); document.write(result); //353
因?yàn)閳?zhí)行完return 語句之后停止并立即退出,所以位于return 語句之后的任何代碼都不會(huì)執(zhí)行。
當(dāng)然,一個(gè)函數(shù)可以包含多個(gè)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 語句也可以不帶有任何返回值。這樣,就可以立即停止函數(shù)執(zhí)行并且返回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 且不會(huì)出現(xiàn)"bad"
函數(shù)的參數(shù)
ECMAScript 函數(shù)的參數(shù)可以是任意多個(gè),也可以是任何數(shù)據(jù)類型。它在函數(shù)體內(nèi)可以通過arguments 對(duì)象來訪問,如第一個(gè)參數(shù)是arguments[0]、第二個(gè)是arguments[1]等等。命名的參數(shù)只是提供了便利,但不是必須的。如:
function greeting(){ document.write("hello " + arguments[0] + ". you look " + arguments[1] + "."); } greeting("oliver","good"); //hello oliver. you look good.
另外,可以通過訪問arguments 對(duì)象的length 屬性,獲得有多少參數(shù)傳遞給了函數(shù)。如:
function countArguments(){ document.write("there are " + arguments.length + " arguments here."); } countArguments(321,321,32,32); //there are 4 arguments here.
可以利用這一點(diǎn)與if 語句結(jié)合做判斷。如:
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[] 可以與命名參數(shù)一起使用。
函數(shù)的重載(沒有重載)
如果定義了兩個(gè)名字相同的參數(shù),則改名字只屬于后定義的函數(shù)。如:
function add(){ document.write(arguments[0] + arguments[1]); } function add(){ document.write(arguments[0] + 100); } add(321,2); //421 不會(huì)執(zhí)行第一個(gè)函數(shù)(兩個(gè)參數(shù)相加),只執(zhí)行最后一個(gè)同名的函數(shù)(第一個(gè)參數(shù)加上100)
PS:JavaScript匿名函數(shù)
函數(shù)是JavaScript中最靈活的一種對(duì)象,這里只是講解其匿名函數(shù)的用途。匿名函數(shù):就是沒有函數(shù)名的函數(shù)。
1.1 函數(shù)的定義,首先簡單介紹一下函數(shù)的定義,大致可分為三種方式
第一種:這也是最常規(guī)的一種
function double(x){ return 2 * x; }
第二種:這種方法使用了Function構(gòu)造函數(shù),把參數(shù)列表和函數(shù)體都作為字符串,很不方便,不建議使用。
var double = new Function('x', 'return 2 * x;');
第三種:
var double = function(x) { return 2* x; }
注意“=”右邊的函數(shù)就是一個(gè)匿名函數(shù),創(chuàng)造完畢函數(shù)后,又將該函數(shù)賦給了變量square。
1.2 匿名函數(shù)的創(chuàng)建
第一種方式:就是上面所講的定義square函數(shù),這也是最常用的方式之一。
第二種方式:
(function(x, y){ alert(x + y); })(2, 3);
這里創(chuàng)建了一個(gè)匿名函數(shù)(在第一個(gè)括號(hào)內(nèi)),第二個(gè)括號(hào)用于調(diào)用該匿名函數(shù),并傳入?yún)?shù)。
相關(guān)文章
學(xué)習(xí)JavaScript設(shè)計(jì)模式之中介者模式
這篇文章主要為大家介紹了JavaScript設(shè)計(jì)模式中的中介者模式,對(duì)JavaScript設(shè)計(jì)模式感興趣的小伙伴們可以參考一下2016-01-01el-table動(dòng)態(tài)渲染列、可編輯單元格、虛擬無縫滾動(dòng)的實(shí)現(xiàn)
vue對(duì)數(shù)據(jù)處理很常見,本文主要介紹了對(duì)el-table組件二次封裝,包括對(duì)el-table的動(dòng)態(tài)渲染、單元格編輯;對(duì)于無縫滾動(dòng)的實(shí)現(xiàn),優(yōu)化大數(shù)據(jù)量下的頁面卡頓問題,感興趣的可以了解一下2023-12-12innerHTML在Mozilla Firefox和Opera下執(zhí)行的一個(gè)特例情況。
innerHTML在Mozilla Firefox和Opera下執(zhí)行的一個(gè)特例情況。...2007-01-01JavaScript+H5實(shí)現(xiàn)微信搖一搖功能
這篇文章主要為大家詳細(xì)介紹了JavaScript+H5實(shí)現(xiàn)微信搖一搖功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05JS增加行復(fù)制行刪除行的實(shí)現(xiàn)代碼
這篇文章介紹了JS增加行復(fù)制行刪除行的實(shí)現(xiàn)代碼,有需要的朋友可以參考一下2013-11-11JS實(shí)現(xiàn)自動(dòng)閱讀單詞(有道單詞本添加功能)
有道單詞客戶Duan沒有自動(dòng)閱讀的功能, 本文用強(qiáng)大的js實(shí)現(xiàn)了簡單的自動(dòng)下一個(gè)單詞的功能,需要的朋友可以參考下2016-11-11