數組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
做用域鏈
內層函數可範圍全部外層函數局部變量