js高程筆記4-5章

第四章 變量/做用域和內存問題正則表達式

1.從一個變量給另外一個變量賦值時,若是是賦基本類型值,是建立一個值副本,兩個變量操做互不影響。若是是賦引用類型值,是建立一個引用(指針)的副本。兩個變量指向同一個對象,操做互相會影響。數組

2.函數傳參時,若是傳基本類型值,函數局部做用域修改值不會再全局做用域體現出來。傳引用類型值,局部做用域修改對象會在全局做用域體現出來。P71瀏覽器

3.檢測基本數據類型用typeof,檢測引用類型值時,想知道是什麼類型的對象,用instanceof。app

4.js沒有塊級({})做用域,一個function裏的變量都是透明的。dom

5.確保佔用最少的內存可讓頁面得到更好的性能。而優化內存佔用最好的方式,是爲全局變量和全局對象的屬性解除引用——再也不用時將值設置爲null。函數

 

第五章 引用類型性能

1.引用類型有Object、Array、Date、RegExp、Function(函數其實是實例)、基本包裝類型(Boolean、Number、String)、Global、Math。優化

2.全部對象都具備toLocaleString(),toString(),valueOf()方法。this

3.引用類型Object的表示方法有兩種:編碼

 1 //構造函數方法
 2 var person = new Object();
 3 person.name = "xiaoming";
 4 person.age = 29;
 5 
 6 //對象字面量方法
 7 var person = {
 8     name : "xiaoming",
 9     age : 29
10 };

4.引用類型Array每一項能夠保存不一樣類型的數據,它的表示方法有兩種:

1 //構造函數方法
2 var color = new Array();
3 var color = new Array(3);
4 var color = new Array("red","blue","green");
5 
6 //數組字面量
7 var color = [];
8 var color = ["red","blue","green"];

5.數組的各類方法:

轉換方法:toString()返回數組用逗號拼接的字符串

     join()返回用指定符號拼接的數組的字符串

   棧方法:push()尾部插項,返回數組長度,

       pop()尾部刪項,返回被刪項。

隊列方法:shift()頭部刪項,返回被刪項,

     unshift()頭部插項,返回數組長度。

排序方法:reverse()反轉數組,

     sort()默認按字符比較方法排序,能夠加比較函數。P93

操做方法:concat()將兩個數組合並,返回新數組,不改變原來數組

     slice()取數組指定下標的一部分,返回新數組,不改變原來數組

     splice(a,b,c....)在a位置上開始刪除b個數,並將c...等插進a的位置,返回的是被刪除的數的數組,改變原來的數組。

位置方法:indexOf()返回指定值的下標

     lastIndexOf()從末尾往前找,但下標仍是從頭開始數

迭代方法:every()設置回調函數,若是每項都符合條件,返回true

       some()設置回調函數,若是有一項符合條件,返回true

     filter()設置回調函數,返回符合條件的項的新數組

     map()設置回調函數,對全部項執行相同操做,返回新數組

     forEach()設置回調函數,遍歷數組,返回結果

      (回調函數參數都是value,index,array)

歸併方法:reduce()設置回調函數,對數組項進行迭代,返回結果。

       reduceRight()設置回調函數,從末尾開始迭代。

      (回調函數參數都是previous,current,index,array)

6.RegExp類型能夠用字面量定義,也能夠用構造函數定義(雙重轉義)

7.RegExp類型的方法:exec()和test()

8.函數名僅僅是指向函數對象的指針,函數定義方法有兩種:

1 //函數聲明
2 function sum(a,b){
3     return a+b;
4 }
5 
6 //函數表達式
7 var sum = function(a,b){
8     return a+b;
9 };

9.函數名只是函數類型的一個變量,聲明兩個同名函數只是將變量替換,所以函數沒有重載,也所以函數能夠做爲值經過函數名這個變量被傳遞和返回。

10.函數內部有兩個對象:arguments和this

  arguments是函數參數數組,arguments.callee指向函數。

  this指向當前執行的環境對象。

11.函數做爲對象,有本身的屬性和方法。

  屬性:length命名參數的個數。

     prototype保存全部實例的方法。

  方法:apply()和call()功能同樣,區別在於函數第二個參數call是逐個列出參數,apply可使用數組。這兩個函數的重要做用是擴充函數做用域。P117和P114的栗子

     bind()綁定(手動指定)函數的做用域。

12.基本包裝類型不建議顯式建立(使用new),在建立使用相應的基本類型值時,後臺會自動建立相應的基本包裝類型。

13.基本包裝類型String方法:

字符方法:charAt()返回指定位置的字符

     可使用[]像數組同樣訪問字符

     charCodeAt()返回指定位置字符的編碼

操做方法:concat()將多個字符串拼接起來,返回新字符串

     slice()返回指定範圍的子字符串。傳入負數時,將負數和原字符串長度相加

     substr()返回指定起點和長度的子字符串。傳入負數時,將第一個參數加上字符串長度,第二個參數變爲0.

     substring()返回指定範圍的子字符串。傳入負數時,將參數變爲0

位置方法:indexOf()返回指定子字符串的位置,沒匹配返回-1

     lastIndexOf()返回指定子字符串的位置,從後往前搜索,下標仍是從頭數

     trim()返回字符串的副本,刪除前置和後綴全部空格

大小寫轉換方法:toLowerCase(),toLocaleLowerCase(),toUpperCase(),toLocaleUpperCase()

模式匹配方法:match()傳入正則表達式,返回匹配項和捕獲組匹配項的數組

       search()傳入正則表達式,返回第一個匹配項的位置,沒匹配返回-1

       replace()用字符串替換原字符串的部分。返回新字符串

       split()將字符串按特定字符分割成字符串數組

localeCompare()方法:傳入字符串,比較參數字符串和原字符串,若是原字符串在字母表排在前面,返回負數,相等返回0,不然返回正數。

fromCharCode()方法:傳入一個或多個字符編碼,返回字符串。

14.Global對象,是單體內置對象,自己就存在,不用手動實例化。瀏覽器將這個全局對象做爲window對象的一部分加以實現。例如Object、Array、String、Global、Math。

URI編碼方法:encodeURI(),encodeURIComponent(),decodeURI(),decodeURIComponent()

eval()方法

15Math對象,相關方法:min(),max(),ceil(),floor(),round(),random()...

相關文章
相關標籤/搜索