《javascript高级程序设计》读书笔记(四)引用类型
第五章:引用类型
Object类型
创建object实例的两种方式:
1.new方式
var person = new Object();
person.name = “haozk”;
person.age = 24;
2.对象字面量表示法
var person = {
name:”haozk”,
age:24
}
也能够将属性用字符串包围:
var person = {
“name”:”haozk”,
“age”:24
}
訪问object实例的属性,也有两种方式:
1.alert(person[“name”]) //方括号方式(能够通过变量来訪问属性,属性也能够为keyword或者保留字)
2.alert(person.name) //点方式
Array类型
不同于其它编程语言的array。js中的array具有stringbuffer的动态调整大小。又数据项类型能够不同样。
创建也有两种方式,new与数组字面量方式:
var colors = new Array();
var colors = new Array(3);
var colors = new Array(“red”,”blue”,”green”);
var colors = [];
var colors = [“red”,”blue”,”green”];
数组的length属性不是仅仅读的,能够改变:
colors.length = 2;
alert(colors[2]); //undefined
colors[colors.length] = ‘black’; //在位置2,加入一种颜色,如今的length为3.
检測数组:(重要)
Array.isArray()方法
if(Array.isArray(value)){
//对数组的相关操作
}
转换方法:
调用数组的toLocaleString()、toString()、valueOf(),返回结果都是每项以逗号分隔的字符串。
alert()接受字符串參数。会在后台调用toString()方法,所以能够直接alert(colors).
调用join()方法,能够接受參数,作为分隔的字符串。如:
alert(colors.join[“||”]) //red||blue||green
栈方法:push(),pop()
队列方法:push(),shift(),unshift(能在数组前端加入随意个项并返回新数组的长度)
重排序方法:
反转:reverse()
升序:sort() (注意:是按字符串排序而不是数值)
function compare(value1,value2){ //升序 (通用)
if(value1<value2){
return -1; //若降序,return 1;
}else if(value1>value){
return 1; //若降序。return -1;
}else{
return 0;
}
}
var values = [0,1,5,10,15];
values.sort(compare);
alert(values);
操作方法:contact(),slice(),splice()
位置方法:indexOf(),lastIndexOf()
迭代方法:every(),filter(),forEach(),map(),some()
缩小方法:reduce(),reduceRight()