說(shuō)明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請(qǐng)撥打電話 400 685 0732
全網(wǎng)監(jiān)測(cè)海量數(shù)據(jù)按需發(fā)布監(jiān)測(cè)預(yù)警
實(shí)時(shí)把握輿情動(dòng)態(tài)精準(zhǔn)追溯信息源頭
javascript函數(shù)的參數(shù)與大多數(shù)其他語(yǔ)言的函數(shù)的參數(shù)有所不同。函數(shù)不介意傳遞進(jìn)來(lái)多少個(gè)參數(shù),也不在乎傳進(jìn)來(lái)的參數(shù)是什么數(shù)據(jù)類型,甚至可以不傳參數(shù)。javascript中的函數(shù)定義并未指定函數(shù)形參的類型,函數(shù)調(diào)用也未對(duì)傳入的實(shí)參值做任何類型檢查。實(shí)際上,javascript函數(shù)調(diào)用甚至不檢查傳入形參的個(gè)數(shù)
js函數(shù)——JS中創(chuàng)建函數(shù)的三種方式及區(qū)別
1.函數(shù)聲明
functionsum1(n1,n2){
returnn1+n2;
};
2.函數(shù)表達(dá)式,又叫函數(shù)字面量
varsum2=function(n1,n2){
returnn1+n2;
};
兩者的區(qū)別:解析器會(huì)先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼之前可以訪問;而函數(shù)表達(dá)式則必須等到解析器執(zhí)行到它所在的代碼行才會(huì)真正被解釋執(zhí)行。
自執(zhí)行函數(shù)嚴(yán)格來(lái)說(shuō)也叫函數(shù)表達(dá)式,它主要用于創(chuàng)建一個(gè)新的作用域,在此作用域內(nèi)聲明的變量,不會(huì)和其它作用域內(nèi)的變量沖突或混淆,大多是以匿名函數(shù)方式存在,且立即自動(dòng)執(zhí)行。
3.函數(shù)構(gòu)造法,參數(shù)必須加引號(hào)
varsum3=newFunction(‘n1′,’n2′,’returnn1+n2′);
console.log(sum3(2,3));//5
從技術(shù)角度講,這是一個(gè)函數(shù)表達(dá)式。一般不推薦用這種方法定義函數(shù),因?yàn)檫@種語(yǔ)法會(huì)導(dǎo)致解析兩次代碼(第一次是解析常規(guī)ECMAScript代碼,第二次是解析傳入構(gòu)造函數(shù)中的字符串),從而影響性能。
varname=’haoxl’;
functionfun(){
varname=’lili’;
returnnewFunction(‘returnname’);//不能獲取局部變量
}
console.log(fun()());//haoxl
js如何創(chuàng)建帶返回值的函數(shù)
varfuc=function(){
return1;
}
上面是創(chuàng)建了一個(gè)非常簡(jiǎn)單的函數(shù)fuc,它的返回值是1,當(dāng)你調(diào)用這個(gè)函數(shù)的時(shí)候,例如
alert(fuc());
就會(huì)彈出內(nèi)容為1的對(duì)話框
返回值可以理解為函數(shù)執(zhí)行后得到的結(jié)果,好象求解數(shù)學(xué)公式的時(shí)候
x=a+b+c;
a+b+c=1;
這時(shí)候調(diào)用x就相當(dāng)?shù)玫?的值,a+b+c是執(zhí)行的過程.
調(diào)用functionA(fp1,fp2,fp3);下面的fpp1,fpp2,fpp3是實(shí)參(函數(shù)和面向?qū)ο蟮乃枷氪颂幘筒恢v了,相信都學(xué)過C語(yǔ)言,了解過面向?qū)ο蟮乃枷耄?/p>
varobj=functionA(fpp1,fpp2,fpp3);//調(diào)用函數(shù)functionA,同時(shí)傳參
varfun1=obj.a1;//通過obj對(duì)象獲取對(duì)象字段a的值
varfun2=obj.b1;//取到b的值
varfun3=obj.c1;//取到c的值
Function()構(gòu)造函數(shù)每次執(zhí)行時(shí)都會(huì)解析函數(shù)主體,并創(chuàng)建一個(gè)新的函數(shù)對(duì)象,所以當(dāng)在一個(gè)循環(huán)或頻繁執(zhí)行的函數(shù)中調(diào)用Function()構(gòu)造函數(shù)效率是非常低的。而函數(shù)字面量卻不是每次遇到都會(huì)重新編譯的,用Function()構(gòu)造函數(shù)創(chuàng)建一個(gè)函數(shù)時(shí)并不遵循典型的作用域,它一直把它當(dāng)作是頂級(jí)函數(shù)來(lái)執(zhí)行。如果大家還想了解更多與之有關(guān)的信息,歡迎關(guān)注我們文軍營(yíng)銷的官網(wǎng)。
推薦閱讀
說(shuō)明:如果您有任何疑問或想咨詢其他業(yè)務(wù)請(qǐng)撥打電話 400 685 0732