1. 程式人生 > >js高級程序設計 筆記 --- 錯誤處理、json和ajax

js高級程序設計 筆記 --- 錯誤處理、json和ajax

順序 處理 錯誤處理 fine null 數據格式 存在 復雜數據類型 新技術

1,錯誤處理  

  1,try-catch語句

    try{可能導致錯誤的代碼} catch(error) {在錯誤發生時該怎麽處理}

    error.message是所有瀏覽器都支持的屬性。

    finally語句是不論代碼如何都會執行的。

  2,錯誤類型

    Error是基類型,其他錯誤都繼承自該類型。

    EvalError:使用eval函數發生異常時被拋出

    RangeError: 數值超出相應範圍時觸發。

    ReferenceError: 找不到對象,變量不存在

    SyntaxError: 語法錯誤

    TypeError:類型錯誤。 變量中保存意外的類型,或者訪問不存在的方法

    拋出錯誤:

      throw操作符。用於拋出自定義錯誤。

    錯誤事件

  3,處理錯誤的策略

    1,常見的錯誤類型

      類型轉換錯誤、數據類型錯誤、通信錯誤

  4,區分致命錯誤和非致命錯誤

  5,把錯誤記錄到服務器

2,JSON

  json是一種數據格式。

  1,語法

    json的語法可以表示以下三種類型的值

      簡單值: 使用與js相同的語法,可以在json中表示字符串,數值,布爾值和null,但json不支持undefined; json的字符串必須要使用雙引號。

      對象:對象是一種復雜數據類型。表示的是一組無序的鍵值對,每個鍵值對中的值可以是簡單值,也可以是復雜數據類型的值。與js的對象字面量相比,json有兩個地方不一樣,首先沒有聲明變量,其次,沒用結尾的分號。還有對象的屬性必須加雙引號。

      數組:數組也是一種復雜數據類型。表示一組有序的值的列表。可以通過索引來訪問,數組的值也可以是任意類型。

  2,解析與序列化

    全局JSON對象有兩個方法:

    parse() : 將json轉為js對象。 也可以接收另一個參數,該參數為一個函數。將在每個鍵值對上調用。

    stringify() : 將js對象序列化為JSON對象 ; 除了要接收需要序列化的js對象外,還可以接收兩個參數: 第二個參數 如果是一個數組,那麽結果中將只會包含數組中列出的屬性。如果是一個函數,鍵名和屬性值。根據鍵名來處理屬性值。如果函數返回的是undefined,那麽相應的屬性會被忽略。 第三個參數用於控制結果中的縮進和空白符。

    可以為任何對象添加toJSON()方法,那麽將會返回對應的值

    序列化對象的順序如下:

      1,如果存在toJSON()方法而且能通過它取得有效的值,則調用該方法,否則返回對象本身

      2,如果提供了第二個參數,則應用這個過濾器,傳入函數過濾器的值是第一步返回的值

      3,對第二步返回的每個值進行相應的序列化。

      4,如果提供了第三個參數,執行相應的格式化。

小結: JSON是一個輕量級的數據格式。js使用js語法的子集表示對象、數組、字符串、數值、布爾值和null。 es5定義了一個原生的json對象,可以用來將js對象轉化為JSON字符串或者將JSON解析為js對象。 JSON.stringify和JSON.parse也可以接受一些選項,通過他們改變過濾方式。

  

3,ajax

  頁面的局部刷新技術。

  1,XMLHttpRequest對象

    new XMLHttpRequest() 

    使用XHR對象的時候,要調用的第一個方法時open(),它接受3個參數,要發送請求的類型(get,post等),請求的URL和表示是否異步發送的布爾值。

    要發送特定的請求,必須調用send()方法; send方法接收一個參數,即作為請求主體發送的數據。如果不需要,則必須傳入null。調用send後,請求就會被分派到服務器。

    在收到相應後,響應的數據會自動填充XHR的屬性。相關的屬性有以下:

    responseText:作為響應主體被返回的文本

    responseXML:如果響應的類型為text/xml或application/xml,這個屬性將保存著響應數據的XML DOM文檔。

    status: 響應的HTTP狀態。

    statusText:HTTP狀態的說明

    在接收到響應後,第一步是檢查status屬性。以確定響應成功返回。狀態代碼為200 或者為304時,可以意味著響應為有效的。

    XHR對象的readyState屬性表示請求/響應過程的當前活動階段。有以下取值:

    0:未初始化,尚未調用open方法

    1:啟動。已經調用open,尚未調用send

    2:發送。調用send,未收到響應

    3:接收。接收部分響應數據

    4:完成。接收到全部數據,可以使用

    可以監聽readystatechange事件,在事件內部判斷響應狀態和活動階段。

    

    HTTP頭部信息

    每個HTTP請求和響應都會帶有相應的頭部信息。默認的頭部信息如下:

    Accept:瀏覽器能處理的內容類型

    

  

  

    

js高級程序設計 筆記 --- 錯誤處理、json和ajax