什麼是函數?
函數是定義一次但卻可以調用或執行任意多次的一段js代碼。函數有時會有參數,即函數被調用時指定了值得局部變量。函數常常使用這些參數來計算一個返回值,這個值也成爲了函數調用表達式的值。通俗的說函數就是將具有一定功能的一段js代碼的封裝。
函數聲明的概念
函數對於任何語言來說都是一個核心的概念。通過函數可以封裝任意多條語句,而且可以在任何地方、任何時候調用執行。ECMAScript中的函數使用function關鍵字來聲明,後面跟一組參數以及函數體。
實例:
function box(){
//沒有參數的函數
alert('只有函數被調用,語句纔會被執行');
}
定義函數
格式一:
<script type="text/javascript">
/*function 函數名([形參列表]){
函數體;
[return<表達式>;]
}*/
//例如:
function show(){
console.log('這是我的第一個函數!');
}
</script>
格式二:
<script type="text/javascript">
/*var 變量名 = function(形參列表){
函數體;
[ return <表達式>; ]
}*/
//例如:
var show2 = function (){
console.log('這是我的第二個函數!');
}
</script>
格式三:
立即執行函數(IIFE),用的不多,自動調用自身,不能再其他地方被調用,一般用於JS庫或JS插件的封裝或閉包處理。
<script type="text/javascript">
/*(function (形參列表){
函數體;
[ return<表達式>; ]
}) (實參列表)*/
//例如:
(function (){
var rs = 1 + 2;
console.log(rs);
}
</script>
函數調用
函數不會自動執行(IIFE(立即執行函數表達式)除外),必須通過調用才能執行。
無參數調用:
<script type="text/javascript">
//無參數
function show(){
console.log('這是我的第一個函數!');
}
var show2 = function (){
console.log('這是我的第二個函數!');
}
show1();//如果不傳參,這裏的括號不能省略。
show2();
</script>
有參數調用,參數個數匹配,如果實參個數超過形參個數,不會報錯,會將實參一次傳給形參;如果形參個數超過實參,形參沒有與實參匹配的值,那麼形參默認的值爲undefined。
<script type="text/javascript">
//有參數
function sum1(a,b){
var rs = a + b;
console.log(rs);
}
var sum2 = function (x,y){
var rs = x - y;
console.log(rs);
}
sum1(10,20);
sum2(20,-30);
</script>
return
函數可以通過return返回結果,如果return沒有返回結果,表示結束函數的調用,且返回調用處。
<script type="text/javascript">
function max(a,b){
var result = a > b ? a : b ;
return result;
}
console.info(max(10,20))
</script>