[筆記] 搞懂 JS 還不懂的部分 - 2
J+1 [日記]
寫作業與題目時的問題
關於 Eslint
作業庫裡面設定 Eslint 會禁止 ++
的使用,雖然 JavaScript 大神 Crockford 大概 10 年前就在說不要用 ++
或 --
Crockford on JavaScript - Part 5: The End of All Things(連結會直接從討論 ++
、--
的地方開始),但是課程裡還是有教到,不知道應該如何處理?真的不應該使用?先不要使用?還是有辦法改成不糾正這個問題?
還有句尾的分號也設定了一定要加,老師在一些示範影片裡面好像也都沒有打分號,不知道是不是能夠改為不必加?
Immutable 到底可變不可變?!
Primitive values(原始數值)
Primitive type(原始資料型態)
All primitives are immutable, i.e., they cannot be altered. It is important not to confuse a primitive itself with a variable assigned a primitive value. The variable may be reassigned a new value, but the existing value can not be changed in the ways that objects, arrays, and functions can be altered.
一定要搞清楚「變數」與「原始數值」之間的差異。
不可變的數值在經過函數處理後一定要回傳給一個「變數」儲存(可以這樣表達嗎?),因為它的「原始數值」沒辦法被改變。
因為「原始數值」
let a = 'hello' // a 是變數 'hello' 是「原始數值」 |
物件(object)為「可變」資料型態
如陣列(array)是物件(object)的一種,所以它是可變的,因此對它呼叫內建函式處理後會直接改變它本來的內容,然後回傳另一個值,所以如果把函式處理後的值傳給一個變數,它「可能」會與本來的內容不同,例如:
let a = [1, 2] |
但是有些函式的結果是一樣的,像是 array.reverse()
但是物件裡也有不會改動到原本資料的函式,如 array.join()
array 真的很煩,.splice() 與 .slice() 的行為也不同
跟家人去公園玩了一個下午,晚上去朋友家吃飯,下面預訂要完成的內容都沒有完成 XD。但是難得可以出門到空曠的地方跑一跑,還跟公園裡的陌生人打了一下排球,雖然不太會打,但是運動一下真的蠻舒服的。
reduce 用法
綜合題目練習 Lv1 練習十,可以用 reduce()解。