javascript教程
教程:https://www.cnblogs.com/moumoon/p/10990698.html
1.概述
函數的聲明
JavaScript有三種聲明函數的方法。
(1)function命令
function命令聲明的代碼區塊,就是一個函數。function命令后面是函數名,函數名后面是一對圓括號,里面是傳入函數的參數。函數體放在大括號里面。
functionprint(s){
console.log(s);
}
上面的代碼命名了一個print函數,以后使用print()這種形式,就可以調用相應的代碼。這叫做函數的聲明(FunctionDeclaration)。
(2)函數表達式
除了用function命令聲明函數,還可以采用變量賦值的寫法。
varprint=function(s){
console.log(s);
};
這種寫法將一個匿名函數賦值給變量。這時,這個匿名函數又稱函數表達式(FunctionExpression),因為賦值語句的等號右側只能放表達式。
采用函數表達式聲明函數時,function命令后面不帶有函數名。如果加上函數名,該函數名只在函數體內部有效,在函數體外部無效。
varprint=functionx(){
console.log(typeofx);
};
x
//ReferenceError:xisnotdefined
print()
//function
上面代碼在函數表達式中,加入了函數名x。這個x只在函數體內部可用,指代函數表達式本身,其他地方都不可用。這種寫法的用處有兩個,一是可以在函數體內部調用自身,二是方便除錯(除錯工具顯示函數調用棧時,將顯示函數名,而不再顯示這里是一個匿名函數)。因此,下面的形式聲明函數也非常常見。
varf=functionf(){};
需要注意的是,函數的表達式需要在語句的結尾加上分號,表示語句結束。而函數的聲明在結尾的大括號后面不用加分號??偟膩碚f,這兩種聲明函數的方式,差別很細微,可以近似認為是等價的。
(3)Function構造函數
第三種聲明函數的方式是Function構造函數。
varadd=newFunction(
‘x’,
‘y’,
‘returnx+y’
);
//等同于
functionadd(x,y){
returnx+y;
}
上面代碼中,Function構造函數接受三個參數,除了最后一個參數是add函數的“函數體”,其他參數都是add函數的參數。
你可以傳遞任意數量的參數給Function構造函數,只有最后一個參數會被當做函數體,如果只有一個參數,該參數就是函數體。
varfoo=newFunction(
‘return”helloworld”‘
);
//等同于
functionfoo(){
return’helloworld’;
}
Function構造函數可以不使用new命令,返回結果完全一樣。
總的來說,這種聲明函數的方式非常不直觀,幾乎無人使用。
函數的重復聲明
如果同一個函數被多次聲明,后面的聲明就會覆蓋前面的聲明。
functionf(){
console.log(1);
}
f()//2
functionf(){
console.log(2);
}
f()//2
上面代碼中,后一次的函數聲明覆蓋了前面一次。而且,由于函數名的提升(參見下文),前一次聲明在任何時候都是無效的,這一點要特別注意。
阮一峰javascript標準參考教程
向java的main()傳入很多參數
項目中有一些用java寫成的可執行的工具,需求調用者傳入很多的參數.最開始,我使用的是最傳統的方法,直接一個傳入參數數組,所以有如下這么壯觀的代碼:publicstaticvoidmain(S…
FreeMarker語法2
FreeMarker的模板文件并不比HTML頁面復雜多少,FreeMarker模板文件主要由如下4個部分組成:1,文本:直接輸出的部分2,注釋:格局部分,不會輸…
android監聽去電完成ip撥號播送接收者
利用播送完成ip撥號布局文件:
mysql獲取當時日期及格局化
MYSQL獲取當時日期及日期格局獲取體系日期:NOW()格局化日期:DATE_FORMAT(date,format)注:date:時刻字段format:日期格局返回體系日期,輸出2009…
POJFindTheMultiple1426(查找)
FindTheMultipleTimeLimit:1000MSMemoryLimit:10000KTotalSubmissions:22576Accepted:929…
CodeForces340EIahubandPermutations
容斥原理,組合數.找出有$cnt$個數字還有沒放,那么總計劃數就是$cnt!$.總計劃數里邊包含了正確的和非正確的,我們需求將非正確的刪去.先刪去$1$個數字$a[i]=i$的情況,發現會多刪,…
HDU2057A+BAgain
ProblemDescriptionTheremustbemanyA+BproblemsinourHDOJ,nowanewoneiscoming.Giveyo…
20190315xlVBA_刪除無用的區域
‘經常遇見天眼查表格文件特別大,原因是使用了整個表格,盡管無法解釋為什么,但是經過驗證以下代碼是湊效的PrivateSubDeleteUselessRegion(ByValshtAsWor…
bootstrap—-屏幕巨細切換