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