引用类型
object类型
1.创建方式
- Object构造函数
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.创建方式
- Array构造函数
var a = new Array();
var b = new Array(3);
var c = new Array(1,2,3);
- 数组字面量语法
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.转换方法
字符串转数组 stringObject.split(separator,howmany)
数组转字符串
arrayObject.join(separator)
4.栈方法
pop()+push()
5.队列方法
shift()(取得第一项)+push()
或 unshifit()(数组前端添加)+pop()
6.常见方法
- reverse() 反转
- sort() 升序
- indexOf() 向后查找
- lastIndexOf() 向前查找
- 迭代方法
- every()
- filter()
- forEach()
- map()
- some()
RegExp类型
var expression = / pattern / flags;
flags:
- g 全局
- i 不区分大小写
- m 多行
方法 exec()
test()
Function类型
1.函数实际上是对象,函数名实际上是指向函数对象的指针
2.没有重载
function add(num){
return num + 100;
}
function add(num){
return num + 200;
}
var result = add(100); //300
3.定义方法
- 函数声明:解释器会率先读取声明,使其在执行任何代码之前可访问
//函数声明提升
console.log(sum(1,1)); //20
function sum(a,b){
return a+b;
}
- 函数表达式:解析器执行到他所在的代码行才会真正被执行
console.log(sum(1,1)); //unexpected identifier
var sum = function (a,b){
return a+b;
};
4.作为值的函数
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.函数内部属性
- arguments
- this
6.函数方法call(),apply(),bind();
call()和apply()用途都是在特定的作用域中调用函数,实际上等于设置函数体内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()
这个方法会创建一个函数的实例,其this值会被绑定到传给bind()函数的值
window.color = "red";
var o = { color: "blue"};
function sayColor(){
alert(this.color);
}
var result = sayColor.bind(o);
result(); //"blue"
``