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