《高階程式設計》整理(一)---資料型別和陣列篇
《高階程式設計》整理(一)- - -資料型別和陣列篇
一、JavaScript六種資料型別
Undefined ==
Boolean
==》等於true
Null:表示一個空指標物件
typeof(null)==="object"
Boolean:true / false
Number
NAN==NAN
==》false
- - -|isNAN(true)=1
- - -|Number(null) = 0
- -Number("") = 0
對於各種進位制的字串將其轉換成相同大小的十進位制– –>更常用的是parsent("")=NAN
- -parsent("070")=56
parsent("070",8)
八進位制String
- - -|toString(2|8|10|16)
null/undefined 沒有toString方法
- - -| 轉型函式String() 如果有tostring()
方法則呼叫他 如果是 null/undefined —>”null”/”undefined”Object(所有物件的基礎)
- - -|constructor
儲存著用於建立當前物件的函式
- - -|toString() ≈ valueOf()
- - -|hasOwnProperty(propertyName)
- - -|toLocalString()
返回地區化的值 用的比較多的就是 本地時間格式
- - -|propertyIsEnumerable()
(檢測指定屬效能否用for-in列舉)檢測資料型別
typeof
(區分 字串/數值/布林值/undefined)
當檢測資料是引用類資料時instanceof
它根據原型鏈識別(測試例項和原型鏈中出現過的建構函式 如果有返回true)
二、陣列方法
棧方法(Last-In-First-Out)
- - -| 在JavaScript中陣列的push()
pop()
行為類似堆疊出棧 push返回最終陣列長度 pop返回陣列中最後一項佇列方法(First-In-First-Out)
- - -| 在JavaScript中陣列的push()
和shift()
行為類似堆疊出棧 push返回最終陣列長度 shift()返回陣列中第一項
- - -|unshift()
和shift()
相反–>可以向陣列前端推入項並返回新的長度unshift()
和pop()
組合可以實現反向佇列重排序方法
- - -| 陣列有sort()
和reverse()
兩個方法 –sort(fun) 接收一個比較函式Fun(num1,num2) num1<num2 ==> -1 num1=num2 ==>0 num1>num2 ==> 1
操作方法
- - -|concat()
組成新陣列
- - -|slice(start ,end)
擷取陣列但不改變原陣列 對應字串方法subString()
- - -|splice(start, length, another)
陣列中最常用的方法 可完成陣列刪除、插入、替換操作位置方法
- - -|IndexOf(needSearch, startpos)
返回查詢項索引 —–LastIndexOf
查詢方向相反迭代方法
- - -|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)
返回給定條件的陣列- 歸併方法(reduce/reduceRight)
- - -|arr.reduce(function(prev, cur, index, array)
- 歸併方法(reduce/reduceRight)
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類似,不過是倒序。