JavaScript 如何區分表達式(Expression)與陳述式(Statement)?
JavaScript 怎麼理解我們輸入的東西?
就跟我們的對話一樣,透過「單詞」拼湊出來「一句話」,這樣我們就可以知道對方想要表達的事情是什麼。
而 JavaScript 則是分析你寫的程式碼是「表達式」還是「陳述式」,來知道你想要做的事情是什麼。
就跟我們的對話一樣,透過「單詞」拼湊出來「一句話」,這樣我們就可以知道對方想要表達的事情是什麼。
而 JavaScript 則是分析你寫的程式碼是「表達式」還是「陳述式」,來知道你想要做的事情是什麼。
array.sort()是以字串的 Unicode 編碼位置來排序陣列中的元素。
1 | let fruit = ['Orange', 'Banana', 'Apple', 'Cherry'] |
若用sort()來排序「數字」,我們也會得到「照字母排序」的結果。
最近剛結束一個case,是一個滿有挑戰的任務,這裡做成一個小專案來記錄自己的解題思路。
情境 1 是已經存在的規則或邏輯,我主要處理的部分為情境 2。
在不改變原始的資料的情況下,怎麼讓兩筆資料合併為一筆,並且保留兩筆資料的狀態?
做陣列資料裡的時候,有時候不希望異動到原始的資料,所以會將資料複製一份來用。
但問題是,在 JavaScript ,如果直接把陣列賦值給新的變數來用,一樣會改到原本的資料。
Scope 是變數的有效範圍。
function 裡面是 local,指的是在 local 這個範圍裡面有效。
function 外面是 global,指的是在 global 這個範圍裡面有效。
認識 bind, call, apply 這三個方法之前,先說說 function 與 this。
在 JavaScript 裡,幾乎所有的東西都是 object,function 也不例外。
因為 Todolist 包含完整的 CRUD 行為,又功能需求不複雜,很適合當作小專案來練習。
最近六角學院的公開活動 Vue3 夏令營,還有自己練習 JavaScript 的關係,用不同的寫法實作 Todolist 後,總結出上述的心得。
在這裡記錄一下寫法上的差異。
作用域是指變數的有效範圍。
常聽到的全域變數(global variable)通常是指:全域變數是不在任何function(){}內的變數,換句話說,全域變數是在任何地方都可以用的變數。
跟全域變數相反,function(){}內的變數稱為區域變數(local variable)。
在其他程式語言裡面,程式碼是逐步執行的,所以「把要做的事情放在宣告之前」,就會出錯。
但在 JavaScript 並不會出錯,因為執行程式碼之前,會先把宣告的函式或變數放到記憶體中,直到程式執行的時候,函式或變數就已經存在了。(感覺像是宣告的東西被提升到要做的事情之前,但實際不是)
要做的事情放在宣告之前,仍然可以繼續執行的現象叫做提升(Hoisting)。