1. 程式人生 > >javascript忍者祕籍

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工作模式不一樣