1. 程式人生 > >《高階程式設計》整理(一)---資料型別和陣列篇

《高階程式設計》整理(一)---資料型別和陣列篇

《高階程式設計》整理(一)- - -資料型別和陣列篇

一、JavaScript六種資料型別

  1. Undefined == Boolean ==》等於true

  2. Null:表示一個空指標物件 typeof(null)==="object"

  3. Boolean:true / false

  4. Number NAN==NAN ==》false
    - - -| isNAN(true)=1
    - - -| Number(null) = 0 - - Number("") = 0 對於各種進位制的字串將其轉換成相同大小的十進位制– –>更常用的是parsent("")=NAN - - parsent("070")=56

    ES3識別成八進位制 ES5識別成70—->parsent("070",8) 八進位制

  5. String
    - - -| toString(2|8|10|16) null/undefined 沒有toString方法
    - - -| 轉型函式String() 如果有tostring()方法則呼叫他 如果是 null/undefined —>”null”/”undefined”

  6. Object(所有物件的基礎)
    - - -| constructor 儲存著用於建立當前物件的函式
    - - -| toString() ≈ valueOf()
    - - -| hasOwnProperty(propertyName)

    檢測指定屬性是否在當前物件例項中(不包括原型例項)
    - - -| toLocalString() 返回地區化的值 用的比較多的就是 本地時間格式
    - - -| propertyIsEnumerable() (檢測指定屬效能否用for-in列舉)

    檢測資料型別 typeof (區分 字串/數值/布林值/undefined)
    當檢測資料是引用類資料時 instanceof 它根據原型鏈識別(測試例項和原型鏈中出現過的建構函式 如果有返回true)

二、陣列方法

  1. 棧方法(Last-In-First-Out)
    - - -| 在JavaScript中陣列的 push()

    pop() 行為類似堆疊出棧 push返回最終陣列長度 pop返回陣列中最後一項

  2. 佇列方法(First-In-First-Out)
    - - -| 在JavaScript中陣列的 push()shift() 行為類似堆疊出棧 push返回最終陣列長度 shift()返回陣列中第一項
    - - -| unshift()shift() 相反–>可以向陣列前端推入項並返回新的長度 unshift()pop()組合可以實現反向佇列

  3. 重排序方法
    - - -| 陣列有sort()reverse() 兩個方法 –

    sort(fun)
    接收一個比較函式Fun(num1,num2) 
            num1<num2 ==> -1
            num1=num2 ==>0
            num1>num2 ==> 1
  4. 操作方法
    - - -| concat() 組成新陣列
    - - -| slice(start ,end) 擷取陣列但不改變原陣列 對應字串方法 subString()
    - - -| splice(start, length, another) 陣列中最常用的方法 可完成陣列刪除、插入、替換操作

  5. 位置方法
    - - -| IndexOf(needSearch, startpos) 返回查詢項索引 —– LastIndexOf 查詢方向相反

  6. 迭代方法
    - - -| arr.every(function(item,index,array) 對每一項都返回true才返回true
    - - -| arr.some(function(item,index,array) 當某項符合時返回true
    - - -| hasOwnProperty(propertyName) 檢測指定屬性是否在當前物件例項中(不包括原型例項)
    - - -| arr.filter(function(item,index,array) 返回符合條件的集合
    - - -| arr.forEach(function(item,index,array) 對每一項進行操作 無返回 (無法終止迴圈除非丟擲異常)
    - - -| arr.map(function(item,index,array) 返回給定條件的陣列

    1. 歸併方法(reduce/reduceRight)
      - - -| arr.reduce(function(prev, cur, index, array)
        var values = [1,2,3,4,5]; 
        var sum = values.reduce(function(prev, cur, index, array){ 
            return prev + cur; 
        }); 
        alert(sum); //15

第一次執行回撥函式,prev 是1,cur 是2。第二次,prev 是3(1 加2 的結果),cur 是3(陣列
的第三項)。這個過程會持續到把陣列中的每一項都訪問一遍,最後返回結果。
resuceRight()函式和reduce類似,不過是倒序。