引用类型
Array
创建数组
-
Array构造函数
var arr = new Array();
-
数组字面量
var arr = [1,2,3]
数组的length属性不是只读的,通过设置该属性可以从末尾移除或添加项
数组最后一项的索引始终是length-1,下一新项位置为length
检测数组
- instanceof
假定单一的全局执行环境 - Array.isArray()
转换方法
- toString()调用数组每一项的toString(),返回字符串
- valueOf()返回数组
- toLocalString()调用数组每一项的toLocalString(),返回字符串
alert( ) 会在后台调用toString( )
null和undefined会以空字符串表示
栈方法
push pop
队列方法
- shift + push : 实现后端队列
- unshift + pop : 实现前端队列
重排序
- reverse() 反转数组
- sort()默认升序
会调用每项的toString( ),按字符串编码排序,故并非最佳排序
eg. [5,10] = > [10,5]-
可以写一个比较函数作为参数传递给sort()
function compare(v1,v2){ // 升序 if (v1<v2) return -1; else if (v2>v1) return 1; // 交换为降序 else return 0; } arr.sort(compare);
-
对于数值类型
function compare(v1,v2){ return v1-v2; }
-
操作方法
- concat()拼接,若无参数则返回原数组
- slice(start,end)切分子数组,不影响原数组
- splice()向数组中部插入项
- 删除: 两个参数:要删除的第一项的位置,要删除的项数
- 插入/替换: 三个参数: 起始位置,要删除的项数,要插入的项
位置方法
- indexOf()从头找
- lastIndexOf()从尾找
比较时使用全等===
迭代方法
均接受两个参数(fn,a)
fn:每一项上运行的函数
a:作用域对象(可选)
fn接受三个参数 (item,index,array)
item:数组项的值
index:该项在数组中的位置
array:数组对象本身
-
every( ) 若每一项都返回true,则返回true
-
filter( ) 返回会返回true的项组成的数组
可用于查询符合某些条件的项
-
forEach( ) 遍历,无返回值
-
map( ) 返回每次函数调用的结果组成的数组
创建包含项与原数组一一对应的数组(映射)
-
some( ) 若有一项都返回true,则返回true
缩小方法
接受四个参数(prev,cur,index,array)
- reduce( ) 第一项开始
- reduceRight( ) 最后一项开始
Date
RegExp
var exp = / pattern / flag
flag: g(全局) i(不区分大小写) m(多行)
RegExp实例方法
- exec( )
- 接受一个参数:要应用模式的字符串
- 返回包含匹配项信息的数组
- 额外属性:index、input
- test( )
- 直接检测是否存在匹配,常用于if语句
Function
函数实际上也是对象,函数名实际上也是指向函数对象的指针
定义方式: 函数声明、函数表达式[ 在函数声明提升时有区别 ]
一个函数可能有多个名字
function a(){}
var b=a;
a=null;
将a设置为null,但仍可以正常调用b( )
作为值的函数
不仅可以将函数作为参数传递给另一个函数,还可以作为另一个函数的结果返回
函数内部属性
- argument.callee : 用于解除函数递归时函数执行与函数名的耦合,无论引用函数时用的是什么名字,均可以保证正常递归
- this :引用函数执行的环境对象
- caller: 保存调用当前函数的函数的引用
函数属性和方法
- 属性
- length : 函数希望接受的命名参数的个数
- prototype :保存引用类型所有实例方法的真正所在;不可枚举,使用for-in无法发现
- 方法
等于设置函数体内this对象的值,扩充函数的作用域- apply( ) :参数数组
- call( ) : 需要的参数逐个列出
- bind( )
基本包装类型
每当读取一个基本类型值时,后台就会创建一个与之对应的基本包装类型的对象
基本包装类型的对象只存在于代码运行的一瞬间,然后立即被销毁
Boolean
基本类型 | 引用类型 | |
---|---|---|
typeof | Boolean | Object |
instanceof | false | true |
Number
参数为返回的位数
- toFixed( ) 适合处理货币值
- toExponential( ) e表示法
- toPerecision( ) 最合适格式
String
单体内置对象
不依赖于宿主环境的对象
Global
- eval( )
- window( )