網頁

JavaScript - 重新介紹JavaScript重點筆記

這是Mozilla Firefox Developer Center上一篇「重新介紹JavaScript」文章,文章內容精簡,但提出了非常多「實用」的觀念,像我們用了一輩子(很多年啦,但我相信,再怎麼改版這些基本的內容還是不會改變)的for迴圈,還有很多小秘密,讓我們可以寫出「更有效率」的程式,其中還有許多小建議是我們平常的書藉、教科書所看不到的,例如,有沒有聽過「絕對等於」、「絕對不等於」。

小小一篇,又讓我對JavaScript更進一步了解。

重點整理

  • JavaScript 沒有所謂的整數。
  • parseInt()函式有個選擇性的第二個參數(在此建議你一定要指定),用以指定進位數,parseInt("010")會得到8,parseInt("010", 10)才會得到10。
  • 布林 (boolean) 型態:false、0、空字串 ("")、NaN、null、以及 undefined 都會成為 false
  • 雙等號運算子(等於)會進行型態強制轉換,假如比較的資料型態不一樣,有時結果會相當有趣:1 == true會得true。要避免型態強制轉換,要用三等號運算子(絕對等於):1 === true會得false。還有一個!== (絕對不等於)運算子
  • 別忘了--陣列的 length 就是最高索引數加一。
  • for (var i = 0; i < a.length; i++) {a[i]},這樣不是很有效率,因為每迴圈一次就會查詢一次 length 屬性。(但所有JavaScript的教科書都這樣教!)
  • 比較好的寫法:for (var i = 0, len = a.length; i < len; i++) {a[i]},初始化時宣告兩個變數,把length屬性值存放到變數中。
  • 更棒的寫法:for (var i = 0, item; item = a[i]; i++) {處理item},for 迴圈中間指定變數值的部分會被測試是否為「真的」(truthy)--如果成功了,迴圈便會繼續。由於 i 每次都會加一,陣列內的每個項目會被照順序指定到變數 item。當偵測到「假的」(falsy) 項目時(如 undefined)迴圈便會停止。注意--這個小技巧只該用在你確定不會含有「假的」值的陣列(比如說一陣列的物件或 DOM 節點)。假如你在可能含有 0 的數字資料或可能含有空字串的字串資料上做迴圈,最好還是用 i, j 的方式。

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。