第一章 JavaScript簡介
- JavaScript最初用于處理輸入驗證
- 三大組成部分:核心(ECMAScript)、文檔對象模型(DOM)、瀏覽器對象模型(BOM)
- ECMAScript與瀏覽器沒有依賴關系,瀏覽器只是它的最主要宿主。
第二章 在HTML中使用JavaScript
- <script>共有六個屬性,async表示立即下載腳本,但不妨礙頁面中的其他操作;defer表示腳本可以延遲到文檔完全被解析和顯示之后執(zhí)行,只對外部腳本文件有效。
- 正常情況下腳本會按照順序依次加載。
- 延遲腳本:defer。腳本會延遲執(zhí)行,第一個延遲腳本執(zhí)行完后會執(zhí)行第二個延遲腳本,在DOMContentLoaded事件觸發(fā)之前執(zhí)行。
- 異步腳本:async。腳本會立即下載,與defer不同的是不保證執(zhí)行順序。
- 順帶一提,css、圖片等,都不會造成瀏覽器的白屏時間,只有js文件的加載會導致瀏覽器白屏,有兩種解決方式:1、使用defer或async,但存在瀏覽器兼容問題。2、將js腳本文件放在瀏覽器最下方。還有種處理方式是requirejs。
- <noscript>元素。僅瀏覽器不支持JavaScript,或被禁用時會展示其中的內(nèi)容。
第三章 基本概念
- 區(qū)分大小寫;標識符的第一個字符必須是字母,下劃線或美元符號;
- 嚴格模式strict mode。使用方法:"use strict";
- 有5種簡單數(shù)據(jù)類型:Undefined、Null、Boolean、Number和String。一種復雜類型Object。
- 使用typeof可以檢測數(shù)據(jù)類型(屬于操作符,不是方法),使用方法:typeof 95 //"number"。
- undefined類型只有一個值,代表未初始化,主要用于區(qū)分空對象指針和未經(jīng)初始化的變量。
- null也只有一個值,代表空對象指針,偶爾需要將某對象顯示的賦值為null。
- NaN屬于特殊的數(shù)值,主要是為了避免出現(xiàn)錯誤,NaN與任何值都不相等,包括NaN本身。isNaN()函數(shù)用于檢驗參數(shù)是否可以被轉換為數(shù)值類型,如果為true,代表不可以轉換為數(shù)值。