mozilla
您的搜尋結果

    JavaScript 1.6 新鮮事

    JavaScript 1.6 推出了幾項新機能:E4X、幾個新的 Array 方法、以及 Array 與 String 的通用化。

    Firefox 1.5 或更新版的瀏覽器支援 JavaScript 1.6。

    E4X

    ECMAScript for XML(E4X)是個在 JavaScript 內建立並處理 XML 內容的強力技術。我們將持續改進我們對 E4X 的支援,包括新增與既有的 DOM 進行透明化的整合,不過建立以 XML 為基礎的 Web 應用程式的開發者已可受益於 Firefox 1.5 對 E4X 的支援。

    使用 E4X 時還是可以使用標準的 MIME 類型:

    <script type="text/javascript">
    

    不過,E4X 語法可能會和把 Script 放進 HTML 註解以避免舊瀏覽器讀取的現行方式(<!--...-->)發生衝突。E4X 也有可能與把 Script 放進 XML CDATA 區段(<![CDATA[...]]>)讓 Script 可以直接使用 "<" 和 ">" 符號(這並不適用於 HTML)的現行方式發生衝突。如果你不斷的見到莫名其妙的語法錯誤,那就把 "; e4x=1" 加到 MIME 類型裡:

    <script type="text/javascript; e4x=1">
    

    注意,擴充套件中的 Script 一定會把 HTML 註解當作 E4X 的語法來處理。也就是說,"e4x=1" 是預設的。

    E4X 已在 使用 E4X 處理 XML 一文中說明。

    Array 的擴充

    在此有七個新的 Array 方法,並且可以分成兩大類,項目定位方法以及迭代方法。項目定位方法有:

    • indexOf() - 返回第一次出現指定項目的索引。
    • lastIndexOf() - 返回最後一次出現指定項目的索引。

    迭代方法有:

    • every() - 對陣列中的每一個項目執行函數,如果函數返回 true 就繼續下去。如果每一個項目都返回 true,就返回 true。
    • filter() - 對陣列中的每一個項目執行函數,並以陣列返回函數執行結果為 true 的項目。
    • forEach() - 對陣列中的每一個項目執行函數。
    • map() - 對陣列中的每一個項目執行函數,並以陣列返回執行結果。
    • some() - 對陣列中的每一個項目執行函數,如果函數返回 false 就繼續下去。如果有一個項目返回 true,就返回 true。

    閱讀 陣列的運用 以取得更多資訊,或見 Nicholas C. Zakas 的文章,Mozilla's New Array Methods

    Array 與 String 的通用化

    有時候你會想要把陣列的方法套用在字串上。這樣做的話,便是把字串視為字元的陣列。比如說,如果要檢查變數 str 裡面的每個字元都是字母,你就會這樣寫:

    function isLetter(character) {
      return (character >= "a" && character <= "z");
    }
    
    if (Array.prototype.every.call(str, isLetter))
      alert("字串 '" + str + "' 只有包含字母!");
    

    這樣的寫法相當耗事,所以 JavaScript 1.6 有比較簡短的寫法:

    if (Array.every(str, isLetter))
      alert("字串 '" + str + "' 只有包含字母!");
    

    同理,你可以把 String 方法用在任何物件上:

    var num = 15;
    alert(String.replace(num, /5/, '2'));
    

    參閱

    Document Tags and Contributors

    Contributors to this page: teoli, happysadman, Kourge, Mgjbot
    最近更新: teoli,