day 04
引用类型
Object类型
1,创建Object的方式有两种:
(一)使用new操作符后跟Object构造函数,如下:
- var person = new Object();
- person.name = "Nico";
- person.age = "82";
- var person = {
- name:"nico",
- age:82
- };
- var person = {
- "name":"Nico",
- "age":82,
- 5:true
- };
- var person = {}; //同new Object()相同,不会调用Object构造函数(ff 2及之前版本会调用)
- person.name = "Nico";
- person.age = 82;
创建数组的基本方式有两种
(一)一种是使用Array构造函数,如下:
var colors = new Array();
如果知道数组要保存的项目数量,也可以给构造函数传递该数量。使用时可以省略new 操作符,结果相同。
(二)使用数组字面量表示法。由一对包含数组项的方括号表示,多个数组项之间以逗号隔开,如下:
- var colors = ["red","blue","green"];//创建一个包含3个字符的字符串的数组
- var names = []; //创建一个空数组
- var values = [1,2];//不要这样,会创建一个包含2或3项的数组
栈方法
ECMAScript为数组专门提供了push()和pop()方法,以便实现类似栈的行为。push()方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。pop()方法从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。如下:
- var colors = new Array();//创建一个数组
- var count = colors.push("red","blue");//推入两项
- alert(count);//2
- count = colors.push("black");//推入另一项
- alert(count);//3
- var item = colors.pop();
- alert(item);//"black"
- alert(colors.length);//2
采用shift()及push()方法来实现,shift()能够移除数组中的第一个项并返回该项,同时将数组长度减1,示例如下:
- var colors = new Array();//创建一个数组
- var count = colors.push("red","blue");//推入两项
- count = colors.push("black");//推入另一项
- alert(count);//3
- var item = colors.shift();//取得第一项
- alert(item);//"red"
- alert(colors.length);//2
- var colors = new Array();//创建一个数组
- var count = colors.unshift("red","blue");//推入两项
- alert(count);//2
- count = colors.unshift("black");//推入另一项
- alert(count);
- var item = colors.pop();
- alert(item);
- alert(colors.length);
重排序方法
1,数组中存在两个直接排序的方法 reverse()和sort(),一个反转,一个升序排列。第一个方法不够灵活。sort()方法会调用每个数组项的toString()转型方法,然后比较得到的字符串,比较字符串中每个字符的ASCII码的大小,字符串比较ASCII码的方式是首先比较首字符的ASCII码,如果能够区分出大小则停止比较,如果相等则继续比较下一个字符,依次类推。即使数组中的每一项都是数值,sort()方法比较的也是字符串。
如下:
- var values = [0,1,5,10];
- values.sort();
- alert(values);//0,1,10,5
- function compare(value1,value2){
- if(value1 < value2)
- {
- return -1;
- }else if(value1 > value2)
- {
- return 1;
- }else{
- return 0;
- }
- }
- function compare(value1,value2)//升序
- {
- return value2 - value1;
- }