《高級程序設計》整理(一)- - -數據類型和數組篇
一、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
ES3識別成八進制 ES5識別成70—->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類似,不過是倒序。