《javaScript高級程序設計》筆記(一)

第一章 JavaScript簡介

1、一個完整的JavaScript實現,應該由一下三個部分組成:

  • 核心(ECMAScript):提供核心語言功能。
  • 文檔對象模型(DOM):提供訪問和操作網頁內容的方法和接口。
  • 瀏覽器對象模型(BOM):提供與瀏覽器交互的方法與接口。


第二章 在HTML中使用JavaScript

1、<script>元素

(1)<script> 定義了下列 6 個屬性:

  • async :可選。表示應該立即下載腳本,但不應妨礙頁面中的其他操作,比如下載其他資源或等待加載其他腳本。只對外部腳本文件有效。
  •  charset :可選。表示通過 src 屬性指定的代碼的字符集。由於大多數瀏覽器會忽略它的值,因此這個屬性很少有人用。
  •  defer :可選。表示腳本可以延遲到文檔完全被解析和顯示之後再執行。只對外部腳本文件有效。IE7 及更早版本對嵌入腳本也支持這個屬性。
  •  language :已廢棄。原來用於表示編寫代碼使用的腳本語言(如 JavaScript 、 JavaScript1.2或 VBScript )。大多數瀏覽器會忽略這個屬性,因此也沒有必要再用了。
  •  src :可選。表示包含要執行代碼的外部文件。
  •  type :可選。可以看成是 language 的替代屬性;表示編寫代碼使用的腳本語言的內容類型(也稱爲 MIME 類型)。雖然 text/javascript 和 text/ecmascript 都已經不被推薦使用,但人們一直以來使用的都還是 text/javascript 

(2)帶有src屬性的<script></script>標籤之間,不應該再包含額外的JavaScript代碼。如果包含了嵌入的代碼,只會下載並執行外部的腳本文件,嵌入的代碼會被忽略。

(3)src屬性支持引入外部域的完整的URL。例如:

<script type="text/javascript" src="http://www.somewhere.com/afile.js"></script>

(4)<script>標籤的位置,放在<head>中會影響頁面的加載速度,在將script下載,解析,執行完之後纔開始呈現頁面的內容。所以將<script>標籤放在<body>中頁面內容的後面,這樣在解析js代碼之前,頁面內容將完全呈現在瀏覽器中,不會顯示空白頁面,會使用戶感覺頁面的加載速度變快了。

(5)defer屬性相當於告訴瀏覽器:立即下載,但延遲執行,腳本會被延遲到整個頁面解析完畢後再運行。延遲腳本不一定會按照順序執行,因此最好只包含一個延遲腳本。例如:

<script type="text/javascript" defer="defer" src="example1.js"></script>

(6)若同時存在兩個script使用async,則確保兩者之間互不依賴非常重要。指定 async 屬性的目的是不讓頁面等待兩個腳本下載和執行,從而異步加載頁面其他內容。

爲此,建議異步腳本不要在加載期間修改 DOM。


第三章 基本概念

1、typeof是一個操作符而不是函數,所以要得到一個變量的類型可以:typeof 變量,圓括號是可以省略的,不是必須的。

2、從邏輯角度來看, null 值表示一個空對象指針,而這也正是使用 typeof 操作符檢測 null 值時會返回 "object" 的原因。

typeof(null) // "object"

3、當字符串轉換爲Boolean值時,任何非空字符串轉換爲true,空字符串""轉換爲false。

4、數值的精度:

浮點數值的最高精度是 17 位小數,但在進行算術計算時其精確度遠遠不如整數。例如:0.1+0.2的結果不是0.3,而是 0.30000000000000004。

5、確定一個數值是不是有窮的,可用isFinite() 函數,這個函數在參數位於最小與最大數值之間時會返回 true,ECMAScript 能夠表示的最小數值保存在 Number.MIN_VALUE 中——在大多數瀏覽器中,這個值是 5e-324;能夠表示的最大數值保存在

Number.MAX_VALUE 中——在大多數瀏覽器中,這個值是 1.7976931348623157e+308。

6、NaN:非數值。有兩個特點:首先,任何涉及NaN的操作,都會返回NaN。其次,NaN和任何值都不相等,包括NaN本身。

7、位操作符:

(1)計算一個數的二進制補碼:

        1.求這個數絕對值的二進制(32位)

        2.求二進制反碼,1替換爲0,0替換爲1

        3.得到的二進制反碼加1


(2)按位非(NOT)

        按位非操作符由一個波浪線(~)表示,執行按位非的結果就是返回數值的反碼。按位非是

ECMAScript 操作符中少數幾個與二進制計算有關的操作符之一。


對 25 執行按位非操作,結果得到了-26。這也驗證了按位非操作的本質:操作數的負值減 1。

(3)按位與(AND)

(4)按位異或(XOR)

        按位異或操作符由一個插入符號(^)表示,也有兩個操作數。相同爲0,不同爲1

        

(5)根據規則,任何操作數與 NaN 進行關係比較,結果都是 false 。


(6)相等操作符


"55"==55                              true

"55"===55                           false

8、函數中,可以使用arguments來訪問函數的參數,函數的參數依次爲arguments[0],arguments[1]...,通過arguments.length來獲取函數的參數個數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章