javascript高级程序设计笔记(三)

来源:互联网 发布:潍坊淘宝客培训班 编辑:程序博客网 时间:2024/05/17 23:28
1、Object实例创建方式两种A、使用new Object() B、使用对象字面量表示法
var persion = {
"name":"Nicholas",
"age":29
};
在age属性的值29的后面不能添加逗号,因为age是这个对象的最后一个属性。在最后一个属性后面添加逗号,会在IE及Opera中导致错误。
2、
function displayInfo(args) {
    var output = "";
    if (typeof args.name == "string") {

        output += "Name: " + args.name + "\n";
    }
    if (typeof args.age === "number") {
        output += "Age: " + args.age;
    }
    alert(output);

};
displayInfo({
    name:"Nike",age:20
})
displayInfo({name:"Greg"})

这种传递参数的模式最适合需要向函数传入大量可选参数的情形。命名参数在可选参数多的情况下不够灵活。最好的做法是对那些必须值使用命名参数,而使用对象字面量来封装多个可选参数。
3、访问对象属性可以用点、也可以用方括号。
person.name person["name"]
使用方括号的主要优点是可以通过变量来访问属性。
4、Array
A、var colors=new Array();/var colors=Array();/var colors=new Array("red","blue")
B、var colors=["red","blue"];

var values=[1,2,];var options=[,,,,,]
在IE中,values 会成为一个包含3项且每项的值分别为1、2、undefined的数组;在其它浏览器中,values会成为一个包含2项且值分别为1、2的数组。
5、toLocaleString() toString() valueOf()
toString() valueOf() 会返回相同的值,即由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。实际上,会调用数组每一项的toString()方法。
toLocaleString()方法会创建一个数组值得以逗号分隔的字符串,调用每一项的toLocaleString().

var person1 = {
    toLocaleString: function () { return "Nike";},
    toString:function(){return "Merry";}
};
var person2={
        toLocaleString: function () { return "Nike2";},
    toString:function(){return "Merry2";}
}
var person=[person1,person2];
alert(person);//Merry,Merry2
alert(person.toString()); //Merry,Merry2
alert(person.toLocaleString()); //Nike,Nike2
6、栈方法 LIFO last-in-first-out
push()方法可以接收任意数量的参数,把他们逐个添加到数组的末尾,并返回修改后数组的长度。
pop()方法从数组末尾一处最后一项,减少数组的length值,然后返回移除的项。
var colors = new Array();
var count = colors.push("red", { name: "Nike", age: 20 }, "yellow");
alert(count);//3
var item = colors.pop();
alert(item);//yellow
item = colors.pop();
alert(item);//[object object]
7、队列方法 FIFO first-in-first-out
shift()方法移除数组中的第一个项并返回该项,同时数组长度减少1。
unshift()方法在数组前端添加任意个项,并返回新数组的长度。

var colors = new Array();
var count = colors.push("red", { name: "Nike", age: 20 }, "yellow");
var item = colors.shift();
alert(item);//red
alert(colors.length); //2
count = colors.unshift("green", { school: "beiking" });
alert(colors);//green,[object object],[boject object],yellow
8、reverse() 反转数组项的顺序
sort()默认按照升序排列数组项,它会调用每个数组项目的toString()方法,然后比较得到字符串。它可以接收一个比较函数作为参数。

function compare(value1, value2) {
    if (value1 < value2) {
        return 1;
    } else if (value1 > value2) {
        return -1;
    } else {
    return 0;
    }                        
}
var person = { toString: function () { return this.name; }, name: "nike",schoo:"beiking" };
var values = ["array", "bss", "arraz", "bssa", person];
values.sort( compare);
alert(values);//nike,bssa,bass,arraz,array

9、操作方法

concat-基于当前数组中的所有项创建一个新书组,具体,这个方法会先创建当前数组一个副本,然后将接收到的参数添加到这个副本的末尾。
如果传递给concat()方法的是一或多个数组,则该方法会将这些数组中的每一项都添加到结果数组中。如果不是数组,谢谢值就会被简单的添加到结果数组的末尾。

var colors = ["red", "green"];
var colors2 = colors.concat("yellow", ["black", "white"]);
var colors3 = colors.concat(2);
var colors4 = colors.concat("yellow", {name:"Nike"})
alert(colors2); //red,green,yellow,black,white
alert(colors3); //red,green
alert(typeof colors3[2]); //number
alert(colors4); //red,green,yellow,[Object Object]

slice(),基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数,即返回项的起始和结束位置。如果有负数,则用数组长度加上该数来确定位置。
取前不取后。

var colors = ["red", "green", "blue", "orange", "pink"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1, 4);
var colors4 = colors.slice(-2,-1);
alert(colors2);//green,blue,orange,pink
alert(colors3); //green,blue,orange
alert(colors4)//orange

splice()-更改的是当前数组
A:删除-可删除任意数量的项目 splice(start,num) 删除第一项的起始位置和删除的项数,返回删除的项

var colors = ["red", "green", "blue", "orange", "pink"];
var remove = colors.splice(1, 1);
alert(colors);//red,blue,orange,pink
alert(remove);//green

B:插入-splice(start,0 要删除的项数,pro) 起始位置和要插入的项,返回空数组

var colors = ["red", "green", "blue", "orange", "pink"];
var remove = colors.splice(1,0,["newColor"]);
alert(colors);//red,newColor,green,blue,orange,pink
alert(remove);//空

C:替换-向指定位置插入任意数量的项,同时删除任意数量的项。splice(start,delProNum,pro) 起始位置、要删除的项目个数和新增加的项目。返回删除的项

var colors = ["red", "green", "blue", "orange", "pink"];
var remove = colors.splice(1,2,["newColor"]);
alert(colors);//red,newColor,orange,pink
alert(remove); //green,blue
原创粉丝点击