JavaScript 物件深入淺出重點整理
Primitive type 和 Reference type 都是 call by value。不一樣的是儲存的東西。結束!
有人會說 Reference type 是 call by reference 或 call by sharing (這個比較符合我的意思和理解)。但是請先去看這篇:值 (value)、指標 (pointer/address)、參考 (reference)。
Primitive type 和 Reference type 都是 call by value。不一樣的是儲存的東西。結束!
有人會說 Reference type 是 call by reference 或 call by sharing (這個比較符合我的意思和理解)。但是請先去看這篇:值 (value)、指標 (pointer/address)、參考 (reference)。
JavaScript 的型別主要分兩大類別,分別是原始型別 (Primitive type) 及參考型別 (Reference type)。
JavaScript 是動態型別、弱型別的語言。
所謂的動態語言,就是在執行的時候,變數才會依照賦予值的型別,來決定變數的型別。因此變數的型別是可以不斷改變的。
而弱型別則是,偏向容忍隱性的型別轉換,但是怎麼轉換是它自己決定。
詳情可以參考之前寫過的這篇:靜態語言 / 動態語言、強型別 / 弱型別、静態作用域 / 動態作用域。以下僅重點提到一些需要注意的觀念。
ASI 即 Automatic Semicolon Insertion,當程式碼沒有加上分號時,依照 ASI 的規則,自動插入分號。它會帶來一些好處,但是也會造成一些問題。
設計一個實體商品或服務的簡易版本電商網站。主要注重於使用者可以瀏覽網站,了解商品的詳細訊息,並且選擇想要購買的產品,這個簡易版本的電商網站不支持使用者身份驗證 (登入或註冊) 或付款。
Statement 陳述式:主要在陳述一些命令,做一些事情,但是不回傳結果。
Expression 表達式:主要透過符號做一些運算,然後回傳結果。
如果對執行緒的基本概念不太了解的話,可以參考電腦的核心 (Core) 和執行緒 (Thread)。
這邊還有兩個我很討厭的名詞:同步 (Synchronous) 和非同步 (Asynchronous)。因為中文的翻譯超容易誤解。同步有循序、依序的意思。非同步有同時的意思。
記憶體的管理,在早期是軟體工程師一個很重要很困難的課題。現代大部分高階語言中多虧了回收機制 (Garbage Collection),能讓軟體工程師的負擔稍微少了一點。
not defined 和 undefined 是 JavaScript 中很基礎卻也很重要的觀念。