数组web
概述:数组
有序的集合,拥有索引闭包
js中的数组是弱类型,可含有不一样类型元素app
建立数组:函数
最大数数量 2^23-1
性能
字面量this
new Array()spa
增删改查:code
增长
orm
最后添加 arr.push(val)
最前添加 arr.unshift(val)
经过索引添加
删除
最后删除 arr.pop()
最前删除 arr.shift()
经过索引删除
删除后长度不变
修改
经过索引修改
查看
经过索引查看
遍历
for
按顺序,数字索引
for...in
不按顺序,可遍历原型链
函数
定义:
函数是一块代码,被定义一次,但可调用屡次
不一样建立方式:
函数声明
声明前置,前面代码可执行到
函数表达式
变量赋值
1
2
3
|
var
fun =
function
() {
};
|
匿名函数当即执行
1
2
3
|
(
function
() {
})();
|
返回函数
1
2
3
|
return
function
() {
};
|
命名函数表达式
1
2
3
|
var
fun =
function
foo() {
};
|
函数构造器
new Function();
不一样调用方式:
直接调用 foo();
对象方法 o.method();
构造器 new Foo();
call/apply/bind
this:
全局this
=window
通常函数的this
=window
严格模式为 undefined
对象方法的函数的this
谁调用this指向谁
原型链上的this
get/set方法与this
谁调用this指向谁
构造函数中的this
指向构造函数
call/apply方法与this
this指向从参数传入的对象
bind方法与this
把对象做为this传入
bing科里化
arguments:
foo.length 形参个数
arguments.length 实参个数
arguments.callee 函数名
做用域
闭包:
是什么
一个函数的引用,与一个引用环境绑定在一块儿
作什么
循环中的事件可用闭包
经常使用类库使用闭包封装
优劣
优势
灵活和方便
封装
劣势
性能消耗
内存泄露
做用域:
没有块级做用域
三种做用域
全局
函数
eval
做用域链
内层函数可范围全部外层函数局部变量