評估

王林
王林原創
2023-09-03 23:09:06862瀏覽

評估

以下幾點總結了您應該透過閱讀本書(並研究程式碼範例)學到的內容。閱讀每個摘要,如果您不明白其中的內容,請回到書中的主題。

#
  • 物件由儲存值的命名屬性組成。
  • JavaScript 中的大多數內容都可以像物件一樣運作。複數值是對象,而原始值可以像對像一樣對待。這就是為什麼您可能會聽到人們說 JavaScript 中的一切都是物件。
  • 透過使用 new 關鍵字呼叫建構函式或使用速記文字表達式來建立物件。
  • 建構子是物件(Function() 物件),因此,在 JavaScript 中,物件建立物件。
  • JavaScript 提供九個原生建構子: Object()Array()String()Number()Boolean()Function() Date()RegExp()Error()String()Number()Boolean() 建構子具有雙重用途:在需要時提供a) 原始值和b) 物件包裝器,以便原始值可以像物件一樣運作。
  • nullundefined"string"10truefalse 都是原始值,沒有物件性質,除非像物件一樣對待。
  • 當>Object(), Array(), String(), Number(), Boolean( ), Function(), Date ()RegExp()Error() 建構子使用 new 關鍵字調用,建立一個稱為「複雜物件」或「引用物件」的物件。 李>
  • "string"10truefalse 在其原始形式中沒有物件屬性,直到它們被用作物件為止;然後JavaScript 在幕後建立臨時包裝對象,以便這些值可以像物件一樣運作。
  • 原始值按值存儲,複製時按字面意思複製。另一方面,複雜物件值透過引用存儲,並且在複製時透過引用複製。
  • 當它們的值相等時,原始值與其他原始值相等,而複雜物件僅當它們引用相同的值時才相等。也就是說:當一個複數值引用同一個物件時,兩個複數值就等於另一個複數值。
  • 由於複雜物件和參考的性質,JavaScript 物件具有動態屬性。
  • JavaScript 是可變的,這表示可以隨時操作本機物件和使用者定義的物件屬性。
  • 取得/設定/更新物件屬性是透過使用點符號或方括號符號來完成的。當所運算的物件屬性名稱採用表達式形式時(例如 Array['prototype']['join'].apply()),括號表示法很方便。
  • 引用物件屬性時,將使用查找鏈首先查看屬性所引用的物件。如果該屬性不存在,則在建構子 prototype 屬性中尋找該屬性。如果在那裡找不到,因為原型持有一個物件值,並且該值是從Object() 建構子建立的,因此在Object() 建構子 prototype 屬性(Object) 上尋找該屬性.prototype)。如果在那裡沒有找到該屬性,則確定該屬性為 undefined
  • prototype 尋找鍊是在 JavaScript 中設計繼承(又稱原型繼承)的方式。
  • 由於物件屬性查找鏈(又稱原型繼承),所有物件都繼承自Object() ,因為prototype 屬性本身就是一個Object() 物件。
  • JavaScript 函數是一等公民:函數是具有屬性和值的物件。
  • this 關鍵字在函數內部使用時,是引用包含該函數的物件的通用方法。
  • this 的值是在運行時根據呼叫該函數的上下文確定的。
  • 在全域範圍內使用時,this 關鍵字會引用全域物件。
  • JavaScript 使用函數來建立唯一的作用域。
  • JavaScript提供了全域作用域,所有JavaScript程式碼都存在於這個作用域中。
  • 函數(特別是封裝函數)建立用於解析變數查找的作用域鏈。
  • 作用域鍊是根據程式碼編寫方式設定的,不一定是根據呼叫函數的上下文設定的。這允許函數存取其最初編寫的作用域,即使函數是從不同的上下文呼叫的。這個結果稱為閉包。
  • 不使用 var 在函數內部宣告的函數表達式和變數將成為全域屬性。但是,函數作用域內的函數語句仍然在編寫它們的作用域中定義。
  • 在全域作用域中宣告的函數和變數(沒有 var)將成為全域物件的屬性。
  • 在全域範圍內宣告的函數和變數(使用 var)成為全域變數。

結論

感謝您的閱讀!

以上是評估的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn