iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Modern Web

[學習筆記] 邊學邊寫 JavaScript 30天系列 第 10

[學習筆記] 邊學邊寫 JavaScript 30天 (10):新手最會出錯的地方

  • 分享至 

  • xImage
  •  

今天內容

  • return(回傳)與console.log(印出)
  • Immutable 觀念

筆記

  • return(回傳)與console.log(印出)

    function plus(a,b) {
        return a + b
    }
    console.log(plus(1,1))  //2
    
    /* 執行順序:
        plus(1,1) -> 引數傳入plus這個function
        return a + b  -> 計算a+b
        印出
    */
    
    function plus2(c,d) {
        console.log(c + d)  //2
        //這裡還有一行沒有寫的 return 預設 undefined
    }
    console.log(plus2(1,1))  //2  undefined
    
    /* 執行順序:
        plus(1,1) -> 引數傳入plus這個function
        印出 c + d
        印出 return
    */
    

    自己的理解:console.log是一個印出的動作(顯示),不是每一個結果都需要印出來。但每個計算都需要有結果(回傳)。

    在瀏覽器打開DevTools,每一行都會幫你回傳

  • Immutable 觀念

    MDN Primitive values
    All types except objects define immutable values (that is, values which can't be changed). For example, Strings are immutable. We refer to values of these types as "primitive values".

    var a = "hello"
    a.toUpperCase()
    console.log(a)  //hello
    //a 不會因為這樣寫而改變
    
    var b = "hello hello"
    b = b.toUpperCase()
    console.log(b)
    // 要改變原本的要用一個變數來接,不能直接改變(不可變)。
    
    

    但物件型別的不太一樣,以Array舉例:

    var arr = [1, 2, 3]
    arr.push(4)       //不用寫成 arr = arr.push(4) 會直接改到原本的陣列
    console.log(arr)  //[1, 2, 3, 4]
    
    var arr2 = [4, 3, 2, 1]
    arr2.join(",")      //應該要回傳字串的,這樣寫會改不到。要寫成arr = arr.join(",")
    console.log(arr2)   //[4, 3, 2, 1]
    arr2 = arr2.join(",")
    console.log(arr2)   //4,3,2,1  -> 這是字串
    

    通常使用Array Method會回傳成基本型別的都不太會改到原本的值,但回傳成array的大部分都會改到原本的array。


參考資料


上一篇
[學習筆記] 邊學邊寫 JavaScript 30天 (9):常用的內建函式
下一篇
[學習筆記] 邊學邊寫 JavaScript 30天 (11):課後題目練習
系列文
[學習筆記] 邊學邊寫 JavaScript 30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言