javascript的引用类型: 

 1、object类型 

 var person = new Object(); // new操作符后跟Object构造函数 

 person.name="Boby"; 

 person.age=24; 


 var person={ //对象字面量(对象定义的一种简写形式)定义对象时,不会调用Object构造函数 

  name:"Boby", 

  age:24 

 } 


 var str={ //花括号出现在表达式上下文,表示一个表达式的开始 

 if(){ //出现在语句上下文,表示一个语句块的开始 


 var person={} //与new Object()相同 

 person.name="boby"; 

 person.age=24; 


 常用对象字面量语法,代码量少,给人一种封装数据的感觉,对象字面量可向函数传递大量可选参数 

 typeof 用来检测给定变量的数据类型,检测每个属性是否存在 


 访问属性: 

 person.name 

 person[name] 

 var propertyNmae="name"; 

 person[propertyNmae] // 方括号可以通过变量访问属性 


 2、Array类型 

 ECMAScript的每一项可以保存任何类型的数据,数据的大小可以动态调整 

 var colors = new Array(); 

 var colors = new Array(20); 

 var colors = new Array("red","blue","green"); 

 var colors = ["res","blue","green"]; // 数组字面量表示法,不会调用Array构造函数 

 数组的length属性,可通过设置该属性,从数组的末尾移除项或添加新项 

 var colors = ["res","blue","green"]; 

 colors[colors.length]="black"; 

 colors[colors.length]="brown"; 

 数组做多可以包含4294 967 295个项 

 检测数组 instanceof、isArray 

 if(value instanceof Array)  if(Array.isArray(value)) 

 转换方法 

 toLocaleString()  调用每一项的toLocaleString返回以逗号分隔的字符串 

 toString() 每个值的字符串形式拼接而成的一个以逗号分隔的字符串 

 valueOf() 返回的还是数组 

 join(arg) 只接收一个参数,即用作分隔符的字符串,然后返回包含所有数组项的字符串 

 栈方法: 

 var color = new Array(); 

 var count = color.push("red","green"); // push推入,在栈的末端添加项并返回数组长度 

 alert(count); // 2 

 count = color.push("black"); 

 alert(count); // 3 

 var item = color.pop(); //pop移出,在栈的末端移除项比返回字符串 

 alert(item); // black 

 alert(colors.length); 

 队列方法: 

 var colors = new Array(); 

 var count = color.push("red","green"); 

 var item = color.shift(); // shift 移除数组的第一列比返回该项 

 alert("item"); // red 

 alert("color.length"); // 1 

 count = color.unshift("black","brown"); //unshift 从数组的前端添加项 

 排序:reverse()反转顺序;short()升序; 

 自定义比较函数 

 function compare(value1,value2){ 

 if(value1<value2){ 

    return -1; 

 } 

 else if(value1>value2){ 

    retrun 1; 

 } 

 else{ 

    return 0; 

 } 

 } 

 var values=[0,1,10,5,15]; 

 values.sort(compare); 

 alert(values); 

 操作方法 

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

 var color1 = color.concat("yellow","black"); 

 var color2 = color1.slice(1); // green,yellow,black 

 var color3 = color1.slice(1,4); // green,yellow 

 var color4 = color1.slice(-3,-1); // green,yellow 有负数,用数组的长度加上该数来确定相应的位数 

 var color5 = color1.splice("起始点","到要删除的位数点","要插入的项","",....); 

 color1.indexof(2); // 数组开头开始向后查找 

 color1.lastIndexOf(); //数组末尾开始向前查找 

 迭代 

 var numbers = [1,2,3,4,5,6,7,8,9,10]; 

 var everyResult = numbers.every(function(item,index,array){ 

     return item>2; 

 }); 

 alert(everyResult); //false 有一项不满足,就返回false 

 var someResult = numbers.some(function(item,index,array){ 

     return item>2; 

 }); 

 alert(someResult); // true 有一项满足,就返回true 

 var filterResult = numbers.filter(function(item,index,array){ 

     return item>2; 

 }); 

 alert(filterResult); // 3,4,5,6,7,8,9,10  filter用于查询符合某些条件的所有数组项 

 var mapResult = number.map(function(item,index,array){ 

     return item.*2; 

 }); 

 alert(mapResult); // 2,4,6,8,10,12,14,16,18,20  map用于原始数据对应项的运算 

 number.forEach(function(item,index,array){ 

     //执行操作 
})
3、Date

 4、Function: 

 function sum(sum1,sum2){ 

    retrun sum1+sum2; 

 } 

 var anotherSum = sum; // 不带园括号的函数名是访问函数指针,而非调用函数,与sum指向了同一个函数 

 sum = function(sum1,sum2){ 

    return sum1+sum2+100; 

 } 

 函数声明、函数表达式,代码在向执行环境中加载数据时,对函数声明和函数表达式并非一视同仁,解析器会率先读取函数声明 


5、Math对象 min、max、random