javascript 4-5章1

来源:互联网 发布:法兰克福和慕尼黑 知乎 编辑:程序博客网 时间:2024/05/17 04:52

1、基本类型:string bolean number null undefined

     引用类型:引用类型的值是保存在内存中的对象,JavaScript不存于直接操作对象的内存空间,在操作对象时,实际上是在操作对象的引用,而不是实际的对象。当复制保存某个对象的变量时,操作的是对象的引用,但在为对象添加属性时,操作的是实际的对象。


为obj1添加属性后,obj2也可以访问该属性。

var obj1=new object();

var obj2=obj1;

obj1.name="lele";

alert(obj2.name)  //"lele"


2、传递参数

向参数传递基本类型的值

function add(num){

num+=1;

return num;

}

var a=1;

var result=add(a);

alert(a);   //1

alert(result);  //2



向参数传递引用类型的值

function setName(obj){

var obj.name="meimei";

}

var person=new person();

setName(person);

alert(person.name); //"meimei"


证明参数是按值传递的,不是按引用传递的。

function setName(obj){

var obj.name="meimei";

var obj=new obj();

obj.name="yue";

}

var person=new person();

setName(person);

alert(person.name); //"meimei"


3、检测类型

typeOf();

var q="cc";

alert(typeOf(q));  //string

var w;

alert(typeOf(w));  //undefind

var e=null;

alert(typeOf(e));  //object


instanceOf()

var a=new object();

var b=1;

alert(a instanceOf object);  //true

alert(b instanceOf object);  //false


查询标识符

为了确定变量的值,首先搜索getcolor()内是否存在color标识符,没有搜索到后再去上一级作用域搜索。

var color=“blue”;

function getcolor(){

return color;

};

alert(getcolor());  //"blue"


5、引用类型

创建对象实例:

第一种

var person=new person();

person.name="aa",

person.age=12

第二种(最常用)

var person={

name:"hah",

"age":29,   //属性名也可以使用字符串

5:true

};

第三种

var person={}  //跟var person=new person()相等。

person.name="aa",

person.age=12


 function displayInfo(arg){

var output="";

if(typeOf arg.name=="string"){

output="name:"+arg.name+"\n"

}

if(typeOf arg.age==""number){

output="age::"+arg.age+"\n"

}

alert(output);

}

displayInfo

(

{

name:"qq",

age:12

}

);



displayInfo

(

{

name:"rrrrr"

}

);

访问对象属性

第一种:alert(person["name"]);

第二种(最常用):alert(person.name);


第一种的有点:(通过变量访问属性)

var proName="name";

alert(person[proName]);


6、array类型

声明创建array

var color=new array();

var color=array();

var color=new array(10);


var color=["red","blue","yellow"];

alert(color[0]);  //"red"

color[1]="black"   //修改第2项

color[3]="orange"  //新增第4项

color[color.length]="white"  //新增第5项

color.length=6;

alert(color[5]);  //undefined

删除

var color=["red","blue","yellow"];

color.length=2;  //删除第3项

alert(color[2]);


转换方法

tostring()、string()、valueOf()

var color=["red","orange","blue"];

alert(color.tostring());  //red,orange,blue


var person={

toString:function(){

return "a";

};

toLocalString:function(){

return "b";}

}

var color={

toLocalString:function(){

return "red";

}

toString:function(){

return “blue”;

}

}

var personColor=[preson,color];

alert(personColor);  //a,blue

alert(personColor.toString);  //a,blue

alert(personColor.toLocalString);  //b,red


数组内添加项

var color=["red","blue","yellow"];

color.push("black");  //添加到数组末尾,可以有任意个参数

color[4]="white";  //添加到数组末尾

var item=color.pop();   //从数组末尾删除最后一项

alert(item);



var color=["red","blue","yellow"];

var item=color.shift();  //删除第一项"red",之后“blue”变成第一项;

alert(item);

var item=color.unshift("aa","bb");  //在数组前端添加任意个项


var value=[1,5,3,4];

value.reverse(); //反转数组项的顺序

alert(value);  //4,3,5,1

把数组变成字符串

var a=[1,2,3,w,e];

alert(a.join(.)); //"1.2.3.w.e"

把字符串变成数组

var b="qwerqwr";

alert(b.split(r));  //["qwer","qwr"];


重排序方法

反转数组

var value1=[1,3,2,4,]

value1.reverse();

alert(value1);  //4,2,3,1

升序排列

如果第一个参数应该位于第二个参数前面,则返回-1,如果两个参数相等,返回0;如果第一个参数应该位于第二个参数后面,则返回1.

function compare(value1,valu2){

if(value1<valu2){

return -1

}else if(value1>valu2){
return 1;

}else{

return 0;

}

}

var num=[1,3,2,4];

num.sort(compare);

alert(num);  //1,2,3,4


降序排列

function compare(value,value2){

if(value1<value2){

return 1;

}else if(value1>value2){

return -1;

}else{

return 0;

}

}


如果都是数值类型或者其valueOf()方法会返回数值类型的对象类型,使用更简单的比较函数,第二个值减第一个值即可

function compare(value1,valu2){

return valu2-value1;

}


在当前数组的基础上创建新的数组:concat()


var color=["red","blue","green"];

var color2=color.concat("yellow",["black","white"]);

alert(color)  //red,blue,green

alert(color2)   //red,blue,green,yellow,black,white


基于当前数组中的项创建新数组:slice()

var color=["red","blue","green","orange"];

var color2=color.slice(1);

alert(color)  //red,blue,green,orange

alert(color2)  //blue,green,orange

var color3=color.slice(1,3);

alert(color3)  //blue,green,orange