【閱讀筆記】JavaScript - Misunderstood

最近終於有時間看看新的東西了,剛纔在Slideshare上面看了一個PPT,關於JavaScript的,有些地方還是值得一看的,把一些之前沒有意識到的地方記錄下來先。

 

  • 原作者有個錯誤,"0"和"0.0"都不是假值,空字符纔是假值。
  • 0.0 + "0" = "00"。這裏是做字符串相加,而0.0轉換成字符串是"0"。
  • 下面的代碼:

var x = 9;

function foo() {
  alert(x);
  var x = 10;
  alert(x);
}

foo();

 初一看還以爲輸出時9和10,其實是undefined和10。這裏的關鍵之處在於理解執行上下文中的激活對象(Activation Object),激活對象是在執行上下文對應的作用域鏈(scope chain)的第一個對象,它中間除了包含傳入的參數的值外,還包含所有的局部變量,並且這些局部變量的值一開始都是undefined。就這個例子來說,在foo被調用的時候,激活對象被創建,x有了值undefined,所以執行第一行的alert的時候,輸出undefined;接着x被賦予值10,第二個alert就輸出10了。從這點出發,一個好的做法是在使用局部變量前先聲明。 更多的細節可以看這篇文章

 

  • 對於onload的事件,可以在使用之後就刪除掉,以釋放內存。 


 

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