草莓這天看起來精神多了。
「草莓終於睡飽啦?」熊熊說。
「對啊,了解物件和陣列之後我都一路睡到天亮~」
「那你有沒有興趣再學點新東西呀草莓?」
「哪泥?都來吧~」草莓問說。
「還記得之前的彩蛋網站嗎?」熊熊說。
「嗯嗯記得,只要打關鍵字就會跳出熊本熊~」草莓說。
「那你有想過網頁是如何觸發的嗎?」
「我印象中網頁存在某種機制,可以監聽使用者的輸入,然後等到符合條件的關鍵字就會立刻觸發,對吧?」草莓思考著說。
「觀念都還記得很棒喔!」熊熊讚許地點了點頭。
「那我們就來說說一個重要的東西,它叫做函式 (function)。」
草莓腦中浮現韓式泡菜鍋的畫面。
「不是那個韓式,草莓你太貪吃了」
「我們先來介紹最簡單的函式寫法吧!」
function test() {
var myFood = '薯條';
console.log(myFood);
}
「熊熊,為什麼會有薯條出現在函式裡啊」
「咳咳,那不是教學的重點」
「所以 test 是這支函式的名稱囉?」
「沒錯,這裡我們簡單在裡面宣告了一個變數,並且把它的值印出來~」
「那我應該怎麼讓它運作呢?」
「很簡單~我們可以這樣寫就可以直接使用它囉!」
test()
「那如果我想動態的傳入一些東西進去函式,是做得到的嗎?」
「好問題,我們可以這樣改寫一下。」
function test(str) {
console.log(str);
}
「使用的方式也是比照辦理。」
test('我愛薯條');
「如此一來,我們就可以直接印出 str 的內容囉!」
「了解~」
「不過光是這樣好像有點乏味,我們來介紹另外ㄧ種寫法~」
「函式原來還有其他種寫法呀?」
「當然囉~來看看」
var test = function() {
var myFood = '薯條';
console.log(myFood);
}
「咦!這不是之前說過的變數嗎?」
「沒錯~變數除了可以給數字,字串,布林值,陣列和物件以外,函式也一樣可以喔!」
「太神啦!」
「這都要仰賴於 JavaScript 中的函式,本身設計就是個至高無上的存在,也因此有人會稱呼它叫做一級函式 (First-class function)。」
「難怪函式可以直接指派給變數使用~」
「沒錯沒錯,而且更神奇的是你也可以把函式寫進另外一個函式,或是把它當作參數一起傳入,甚至函式跟物件一樣,同樣擁有所謂的屬性 (property) 喔!」
「原來函式的學問這麼大,寫法也這麼多,函式如果是人的話一定很斜槓喔!」
「草莓,你在槓麻?」
「斜槓啊~斜槓~」
明日待續~