iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
0

草莓這天看起來精神多了。

img


「草莓終於睡飽啦?」熊熊說。

「對啊,了解物件和陣列之後我都一路睡到天亮~」

「那你有沒有興趣再學點新東西呀草莓?」

「哪泥?都來吧~」草莓問說。


img

「還記得之前的彩蛋網站嗎?」熊熊說。

「嗯嗯記得,只要打關鍵字就會跳出熊本熊~」草莓說。

「那你有想過網頁是如何觸發的嗎?」

「我印象中網頁存在某種機制,可以監聽使用者的輸入,然後等到符合條件的關鍵字就會立刻觸發,對吧?」草莓思考著說。

「觀念都還記得很棒喔!」熊熊讚許地點了點頭。


img

「那我們就來說說一個重要的東西,它叫做函式 (function)。」


草莓腦中浮現韓式泡菜鍋的畫面。

img

「不是那個韓式,草莓你太貪吃了」


「我們先來介紹最簡單的函式寫法吧!」

function test() {
  var myFood = '薯條';
  console.log(myFood);
}

「熊熊,為什麼會有薯條出現在函式裡啊」

img

「咳咳,那不是教學的重點」


「所以 test 是這支函式的名稱囉?」

「沒錯,這裡我們簡單在裡面宣告了一個變數,並且把它的值印出來~」

「那我應該怎麼讓它運作呢?」

「很簡單~我們可以這樣寫就可以直接使用它囉!」

test()

「那如果我想動態的傳入一些東西進去函式,是做得到的嗎?」

「好問題,我們可以這樣改寫一下。」

function test(str) {
  console.log(str);
}

「使用的方式也是比照辦理。」

test('我愛薯條');

「如此一來,我們就可以直接印出 str 的內容囉!」

「了解~」


「不過光是這樣好像有點乏味,我們來介紹另外ㄧ種寫法~」

「函式原來還有其他種寫法呀?」

「當然囉~來看看」

var test = function() {
  var myFood = '薯條';
  console.log(myFood);
}

「咦!這不是之前說過的變數嗎?」

「沒錯~變數除了可以給數字,字串,布林值,陣列和物件以外,函式也一樣可以喔!」

「太神啦!」

「這都要仰賴於 JavaScript 中的函式,本身設計就是個至高無上的存在,也因此有人會稱呼它叫做一級函式 (First-class function)。」

「難怪函式可以直接指派給變數使用~」

「沒錯沒錯,而且更神奇的是你也可以把函式寫進另外一個函式,或是把它當作參數一起傳入,甚至函式跟物件一樣,同樣擁有所謂的屬性 (property) 喔!」


「原來函式的學問這麼大,寫法也這麼多,函式如果是人的話一定很斜槓喔!」

「草莓,你在槓麻?」

img

「斜槓啊~斜槓~」

img


img

明日待續~


上一篇
Day24
下一篇
Day26
系列文
StrawBeary 網頁工程三十天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言