iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
自我挑戰組

JavaScript101與人生幹話系列 第 10

JavaScript101與人生幹話-什麼是函式??

  • 分享至 

  • xImage
  •  

什麼是函式??

簡單的來說,就是把基本的語法,與邏輯判斷組合起來就成為函式。

如何宣告一個函式?

我的日常


function myMorningDaily(){
console.log('起床')
console.log('刷牙')
console.log('洗臉')
console.log('吃東西')
console.log('換衣服')
}

myMorningDaily()

//'起床'
//'刷牙'
//'洗臉'
//'吃東西'
//'換衣服'

分析上面的例子我把早上的日常動作寫入函式中,
1.先用function宣告有一個函式叫做myMorningDaily,接著在{}內寫入執行這個函式的每個步驟。

2.要使用這個函式的時候直接呼叫函式名稱加上()。

函式裡面可以包含式

接下來加入晚上的日常


function myMorningDaily(){
console.log('起床')
wash()
console.log('吃東西')
console.log('換衣服')
console.log('出門')
}

function myNightDaily(){
console.log('回家')
console.log('換衣服')
console.log('吃東西')
wash()
console.log('睡覺')

}

function wash(){
console.log('刷牙')
console.log('洗臉')
}

function myDaily(){
myMorningDaily()
myNightDaily()
}
myDaily()

//'起床'
//'刷牙'
//'洗臉'
//'吃東西'
//'換衣服'
//'回家'
//'換衣服'
//'吃東西'
//'刷牙'
//'洗臉'
//'睡覺'

分析上面的例子,myMorningDaily()與myNightDaily()裡面有wash()這個function。
wash()內容是'刷牙'與'洗臉'這兩個動作,因為這兩個動作都最都出現在了myMorningDaily與myNightDaily內所以可以另外寫成一個function,可以不用重複再寫。

最後的myDaily()內也可以包含myMorningDaily()與myNightDaily(),只要執行myDaily(),裡面包含的函式也會一起照順序執行。

函式可以帶參數的

如提它是可以帶參數的不然那個()是要要幹嘛的?

function showNumbrer(num){
console.log(num)
}
showNumbrer(55)//55

我們看到showNumbrer的()內有num可以把它當作是參數進入這個function的入口,參數進入函式之後就會跑到函式内有num的地方,這邊要注意的有兩點。
1.num並不是變數而且只限定在showNumbrer()內有作用。
2.一旦showNumbrer(num)執行結束num也會消失。

函式可以帶多少個參數呢?

答案是,多少都可以。

以下寫個使兩個參數相加的函式

function plus(num1,num2){
console.log(num1+num2)
}
plus(5,9)//14

只要在plus()的()輸入兩個參數並用,區隔這兩個參數就會相加

如果只輸入一個參數就會出現NaN,原因是另一個參數沒有定義為null,但是js會嘗試轉型null為數字做計算,然後不能計算就會出現NaN,但是它的形別是數字

另外參數可以放字串,宣告完成的變數。

return是幹嘛用的?

簡單的來說return可以把函式內的結果給帶到函式外

function plus(num1,num2){
let plusNum = 0;
return plusNum = num1 + num2
}
plus(1,5)//6

以上的範例就是使用return把函式pluse()的運算結果給帶出來

那console.log()不能嗎??

一樣使用上述的範例但是最後面為console.log()

function plus(num1,num2){
let plusNum = 0;
return plusNum = num1 + num2
}
console.log(plusNum)//plusNum is not defined

1.會報錯,原因是let的作用域只會在function內部,plus()結束時,let plusNum = 0就會消失。

2.console.log()會在console反應出在當時的狀態,並不能把結果取出。

return可以多個

return可以多個,但是只要執行了return後面的程式碼,就不會在執行。

最後寫一個計算判斷次數與判斷參數是偶數或奇數的函式吧!!

let inspectionConut = 0
function inspectionNum(num){
//執行函數的時候inspectionConut+1
inspectionConut +=1
//除以2餘數為0是偶數
if(num%2===0){
return `你輸入的${num}是偶數`
 }
else{
return `你輸入的${num}是奇數`
 }
}

console.log(inspectionNum(5))//"你輸入的5是奇數"
console.log(`函式判斷次數為${inspectionConut}次`)//'函式判斷次數為1次'

console.log (inspectionNum(4))//"你輸入的4是偶數"
console.log(`函式判斷次數為${inspectionConut}次`)//'函式判斷次數為2次'

人生幹話-開始躺平

從第三年開始我的上班時間實際上只有四小時,可惜那時候沒有善用多出的時間學習其他技能,不然每天上班四小時,工作一個月領26990其實很爽的,那個時候是2017年,其實在那個時候我腦中有閃過要不要學著架網頁,因為我的工作除了生產抗體與管理動物房還多了網業後台管理就是幫公司上架沒用的產品,與網頁跑版的時候騷擾聯絡網頁公司處理,架網頁有這麼難嗎?我應該可以,只可惜那時候沒有直接把頭洗下去,跑去學寫code,不過那時候沒有開始學前端技術也許是好事?,根據我鍵盤爬文所觀察在2016-2018的時候是前端技術百花齊放、大亂鬥的時候,那個時候的資訊焦慮比現在更嚴重,還蠻多人在抱怨所學的新技術可能半年後可能就沒什麼人用了。


上一篇
JavaScript101與人生幹話-變數的原始型別-物件2
下一篇
JavaScript101與人生幹話-比較運算子與邏輯運算子
系列文
JavaScript101與人生幹話30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言