Hi,大家好,我是Tony,是一個對於JavaScript有一點點概念的新手。
第21天,加油!
今天的學習內容是:JavaScript 箭頭函式 (Arrow Function)
學習內容來自
彭彭老師JavaScript 箭頭函式 Arrow Function
https://www.youtube.com/watch?v=GzrWyJkD3b8&list=PL-g0fdC5RMbqW54tWQPIVbhyl_Ky6a2VI&index=28
昨天的學習內容:[Day 21] JavaScript AJAX 網路連線實務(利用fetch函式)
https://ithelp.ithome.com.tw/articles/10346669
每一個函式都會包含以下三個部分:
它是函式的另一種寫法,
省去function關鍵字,用**=>**取代,
普通函式與箭頭函式的基本語法:
//普通函式寫法1
function 函式名稱(函式的參數列表){
函式區塊內的程式碼
return 回傳值;
};
//普通函式寫法2
let 函式名稱=function(函式的參數列表){
函式區塊內的程式碼
return 回傳值;
};
//箭頭函式的寫法
let 函式名稱=(函式的參數列表)=>{
函式區塊內的程式碼
return 回傳值;
};
實際範例如下:
//普通函式寫法1
function add(n1,n2){
let result=n1+n2;
return result;
};
//普通函式寫法2
let add=function(n1,n2){
let result=n1+n2;
return result;
};
//箭頭函式的寫法
let add=(n1,n2)=>{
let result=n1+n2;
return result;
};
函式本體只有回傳值敘述,
沒有其他指令時可以簡化
//可以簡化的箭頭函式 (有大括號)
let 函式名稱=(函式的參數列表)=>{
return 回傳值;
};
//簡化後的箭頭函式 (用小括號)
let 函式名稱=(函式的參數列表)=>(回傳值);
實際範例如下:
//無法簡化
let add=(n1,n2)=>{
let result=n1+n2; //除了回傳值之外還有程式,不能簡化。
return result;
};
//可以簡化
let add=(n1,n2)=>{
return n1+n2; //函式中只有回傳值,可以簡化。
};
//簡化後
let add=(n1+n2)=>(n1+n2);
這是原本就會的內容,
之前有學過的方式,計算結果。
<script>
let result=0
let n=1;
while(n<=10){
result+=n;
n++;
}
console.log(result);
</script>
網頁結果1
將前面的迴圈放入函式中,
並呼叫函式,印出執行的結果。
<script>
function calculated(){
let result=0
let n=1;
while(n<=10){
result+=n;
n++;
}
console.log(result);
}
calculated();
</script>
網頁結果2
利用在函式中的參數值來寫。
順便練習另一種函式寫法
<script>
let calculated=function(max){ //放入參數值
let result=0
let n=1;
while(n<=max){ //參數值運作的地方
result+=n;
n++;
}
return result //用回傳值傳遞到函式外部
};
//呼叫函式
let ans1=calculated(10); //1+2+...+10
let ans2=calculated(20); //1+2+...+20
let ans3=calculated(100); //1+2+...+100
console.log(ans1,ans2,ans3);
</script>
網頁結果3
正確列出累加到10、20、100。
改成使用箭頭函式來寫。
<script>
let calculated=(max)=>{
let result=0
let n=1;
while(n<=max){
result+=n;
n++;
}
return result
};
let ans1=calculated(10); //1+2+...+10
let ans2=calculated(20); //1+2+...+20
let ans3=calculated(100); //1+2+...+100
console.log(ans1,ans2,ans3);
</script>
網頁結果4
得到的結果也是一樣,正確跑出來。
<script>
//乘法的箭頭函式
let multiply1=(n1,n2)=>{
return n1*n2;
};
let ans1=multiply1(3,4);
let ans2=multiply1(12,53);
console.log(ans1,ans2);
//簡化後
let multiply2=(n1,n2)=>(n1*n2);
let ans3=multiply2(3,4);
let ans4=multiply2(12,53);
console.log(ans1,ans2);
</script>
網頁結果5
成功得到一樣的結果。
以上就是今天學習的內容。
有感覺自己之前學到的東西漸漸開始要融會貫通了。
謝謝大家,我們明天見!
箭頭函式建議你用 const
取代 let
來定義。
另外箭頭函式跟一般的宣告函式有一些本質上的差異,主要體現在 this
的指向性上,這個之後可以了解一下 (不是現在),面試很愛考 www
了解~新的知識又增加了哈哈
尤其是面試官很愛考這個部分(筆記筆記
感謝你的留言分享。