引用類型
object類型
1.創(chuàng)建方式
- Object構(gòu)造函數(shù)
var person = new Object();
person.name = "Jay";
person.age = 37;
- 對象字面量語法
var person = {
name : "Jay",
age : 37
}
var person2 = {};
person2.name = "yyy";
person2.age = "18";
2.訪問屬性的方法
- 點表示法
- 方括號語法 屬性名包含特殊字符或通過變量來訪問屬性
如:person["first name"]
person[propertyName]
Array類型
1.創(chuàng)建方式
- Array構(gòu)造函數(shù)
var a = new Array();
var b = new Array(3);
var c = new Array(1,2,3);
- 數(shù)組字面量語法
var a = [];
var b = [1,2,3];
2.length
- 移除項
var a = [1,2,3];
a.length = 2;
console.log(a[2]); //undefined
- 添加項
var a = [1,2,3];
a[a.length] = 4;
3.轉(zhuǎn)換方法
字符串轉(zhuǎn)數(shù)組 stringObject.split(separator,howmany)
數(shù)組轉(zhuǎn)字符串
arrayObject.join(separator)
4.棧方法
pop()+push()
5.隊列方法
shift()(取得第一項)+push()
或 unshifit()(數(shù)組前端添加)+pop()
6.常見方法
- reverse() 反轉(zhuǎn)
- sort() 升序
- indexOf() 向后查找
- lastIndexOf() 向前查找
- 迭代方法
- every()
- filter()
- forEach()
- map()
- some()
RegExp類型
var expression = / pattern / flags;
flags:
- g 全局
- i 不區(qū)分大小寫
- m 多行
方法 exec()
test()
Function類型
1.函數(shù)實際上是對象蚂踊,函數(shù)名實際上是指向函數(shù)對象的指針
2.沒有重載
function add(num){
return num + 100;
}
function add(num){
return num + 200;
}
var result = add(100); //300
3.定義方法
- 函數(shù)聲明:解釋器會率先讀取聲明,使其在執(zhí)行任何代碼之前可訪問
//函數(shù)聲明提升
console.log(sum(1,1)); //20
function sum(a,b){
return a+b;
}
- 函數(shù)表達(dá)式:解析器執(zhí)行到他所在的代碼行才會真正被執(zhí)行
console.log(sum(1,1)); //unexpected identifier
var sum = function (a,b){
return a+b;
};
4.作為值的函數(shù)
function add(a,b){
return a + b;
}
function callFunction(f,a,b){
return f(a,b);
}
var result = callFunction(add,1 ,1);
console.log(result);
5.函數(shù)內(nèi)部屬性
- arguments
- this
6.函數(shù)方法call(),apply(),bind();
call()和apply()用途都是在特定的作用域中調(diào)用函數(shù)划煮,實際上等于設(shè)置函數(shù)體內(nèi)this的對象值拐迁。
apply()
function sum(a,b){
return a + b;
}
function callSun(a,b){
return sum.apply(this, [a,b]);
}
alert(callSum(10,10)); //20
call()
function sum(a,b){
return a + b;
}
function callSun(a,b){
return sum.call(this, a, b);
}
alert(callSum(10,10)); //20
bind()
這個方法會創(chuàng)建一個函數(shù)的實例蹭劈,其this值會被綁定到傳給bind()函數(shù)的值
window.color = "red";
var o = { color: "blue"};
function sayColor(){
alert(this.color);
}
var result = sayColor.bind(o);
result(); //"blue"
``