javascript忍者祕籍

一、函數
1、函數是第一型對象
2、瀏覽器負責事件輪詢和事件派發,代碼負責建立事件處理程序(handler)
3、瀏覽器輪詢是單線程的
4、回調函數
5、函數提前引用
6、作用域由函數聲明,而不是代碼塊
8、從參數到函數形參
如果實際傳遞的參數比定義的多,則超出部分不匹配
如果實際傳遞的參數比定義的少,匹配不到的值爲undefined
9、函數的隱式參數:
arguments:類數組形式,可以遍歷,但是卻不是數組,沒有數組其他特性
this:調用上下文
7、不同的函數調用,函數上下文:
- 作爲函數調用:函數上下文this是全局上下文,window
- 作爲方法進行調用:函數上下文this是對應的對象
- 作爲構造進行調用:函數調用前使用new關鍵字,this新分配一個對象
- 通過aplay或者call調用,所有函數都具有的方法
10、匿名函數
避免不必要的函數名稱污染全局空間
11、遞歸
包含有函數自身的調用,有終止條件
12、函數存儲
!!是將數據成功轉成等效布爾的方式
13、函數重載
引導Array函數將一個非數組當成一個數組來看待

Array.prototype.slice.call(els)

14、函數判斷
Object.prototype.toString.call(fn)===’[object Function]’
15、函數擁有length屬性
用於指明定義參數的個數

16、閉包
能夠讓函數訪問所有變量和函數

即時函數

二、函數原型
1、原型上定義的屬性和功能會自動應用到對象的實例上
2、所有的函數在定義後都有一個原型屬性,該值爲空對象
3、函數普通調用和作爲構造器調用的區別:
函數作爲構造器進行調用時,函數的原型是新對象的概覽,通過原型給函數附加屬性。new操作符將函數作爲構造器進行調用,新創建一個對象,返回改新對象的引用,創建的實例執行該新對象。
4、原型允許我們定義一些屬性和方法,這些屬性和方法會自動應用大新對象的實例上

三、正則表達式
如果一個字符不是特殊字符,也不是操作符,則必須出現在匹配字符串中
1 、[abc]匹配字符集中任意一個字符
2、[ ^abc]匹配abc字符以外的字符
3、轉義\?
4、匹配開始^test
5、匹配結束test$
6、重複出現
t?esfg表示t可以出現一次或根本不出現
t+esfg表示t出現一次或者多次
t*esfg表示t出現零次或者多次
t{2,5}esfg表示t出現2-5次
t{2,}esfg表示t出現2次,或者多於2次

7、預定義字符類
\d:[0-9]
\D:[^0-9]
\w:[A-Za-z0-9]
\W:[^A-Za-z0-9]
\s:任意空白字符
\S:任意非空白字符
\b:單詞邊界
\B:非單詞邊界
.:除新行以外的字符

8、()
9、|
10、反向引用,/^([abc])f\1/i其中\1表示匹配第一次捕獲字符串一樣
11、包括編譯和執行兩個階段
編譯:通過字面量或者構造器方式,構造器方法允許使用變量
編譯後可以使用test(str)函數執行

四:定時器
setTimeout和setInterval工作模式不一樣

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