《高级程序设计》整理(一)- - -数据类型和数组篇
###一、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), initialValue)
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类似,不过是倒序。