1. 程式人生 > >《JavaScript面向對象編程指南》讀書筆記①

《JavaScript面向對象編程指南》讀書筆記①

大寫 timeout () 簡單 應該 回調函數 scrip 指南 strong

概述

JavaScript快忘完了,想看一本專業書拾遺,所以看了這本《JavaScript面向對象編程指南》。

個人覺得這本書講的很透徹很易懂,一些原來有疑惑的地方在這本書裏面豁然開朗,看起來非常爽

現在我只記錄一下我看這本書記錄下的一些東西。那些簡單的知識我沒有記錄,我只記錄幾個容易遺漏的或者精彩的知識點,以後再看也可當做拾遺之用

記錄

  1. 對象,方法,屬性和類的通俗解釋:對象往往是用名詞來表示的(也被稱為實例);方法一般都是些動詞;屬性值則往往是一些形容詞;類就是相似對象的共同特征。
  2. 什麽是接口?以MP3播放器為例,如果MP3播放器是一個對象,那麽作為該對象的用戶,我們無疑需要一些類似於像按鈕,顯示屏這樣的工作接口。這些接口能幫助我們使用該對象(如播放歌曲之類的)。至於它們內部是如何工作的,我們並不清楚。
  3. 所謂XX的初始化,實際上指的是XX首次(或者最初)被賦值或使用的時機。
  4. 我們可以將2e+3理解為將數字2的小數點向右移三位,同理2e-3也就能被理解為是將數字2的小數點左移三位。
  5. \u後面的字符將會被視為Unicode碼。
  6. 使用雙重取反操作可以很容易的將任何值轉換為等效的布爾值。
  7. var mynumber=mynumber || 10
  8. 代碼的操作符,關鍵字前後要加空格,為了美觀。
  9. 如何確定一個輸入值是否是一個可以參與算術運算的數組?用isNaN()
  10. eval()會將其輸入字符串當做JavaScript代碼來執行。
  11. var a = 123; function f() {alert(a); var a = 1; alert(a);} f();
    會顯示什麽?
  12. 當我們將函數A傳遞給函數B,並由B來執行A時,A就成了一個回調函數。也就是說,回調函數就是當做參數使用的函數。(回調函數可參見《JavaScript面向對象編程指南》的第65頁,非常精彩。)
  13. 自調匿名函數的好處在於這樣不會產生任何全局變量。
  14. 有沒有函數能夠在每次調用的時候重寫自己,然後每次調用的時候更新自己?有!利用能夠返回函數的函數!(參見《JavaScript面向對象編程指南》的第69頁,非常精彩。)
  15. 如果對象的屬性名不符合JavaScript中的變量命名規則,就必須對其施加一對引號。
  16. 哈希表:以字符串為鍵值的關聯型數組。
  17. 依照慣例,我們應該將構造器函數的首字母大寫,一遍顯著地區別於其他一般函數。
  18. Function構造器,eval()setTimeout()都會以字符串的形式通過JavaScript的代碼檢查。
  19. Function對象也有一個length屬性,用於記錄該函數所擁有的參數數量;還有一個caller屬性,會返回一個調用該函數對象的外層函數引用。
  20. arguments屬性有一個callee屬性,它引用的是當前被調用的函數對象。
  21. Number對象本身有5個內置屬性和3個內置方法。
  22. 基本類型的字符串不是字符串對象;基本類型的數字不是數字對象。
  23. 正則表達式的回調式替換
  24. function f() {function c() {return this;} return c();} var o = new f();其中this指向的是誰?(window
  25. 路很長,永遠也沒有終點,但是放棄只是一剎那的時間!共勉!

《JavaScript面向對象編程指南》讀書筆記①