标签:
引用类型是一种数据结构,用于将数据和功能组织在一起。它描述的是一类对象所具有的属性和方法。Object是一个基础类型,Array是数组类型,Date是日期类型,RegExp是正则表达式类型,等。
var dog = new Object();
常应用于存储和传输数据。比如存储:
var person = new Object(); person.name = "Nicholas"; person.age = 29;
创建的第二种方式:(在创建时,属性名也可以是字符串格式,即:可以给属性名加引号。)
var person = { name : "Nicholas", age : 29 };
var stars=new Array();//方式1 var stars=new Array(20);//方式2 var stars=new Array("周杰伦","林俊杰","孙燕姿");//方式3 var stars=Array(20);//方式4 var stars=["周杰伦","孙燕姿","林俊杰"];//方式6
var stars=["周杰伦","林俊杰","孙燕姿"]; stars[1]="JJ";//动态改变(把林俊杰变为JJ) stars[3]="皮裤汪";//动态增长(加了一个长度) stars.length=1;//动态强制缩减(林俊杰、孙燕姿、皮裤汪强制移除,长度变为1)
var stars = ["周杰伦", "王尼玛", "张全蛋"]; alert(stars .join(",")); //周杰伦,王尼玛,张全蛋 alert(stars .join("-")); //周杰伦-王尼玛-张全蛋
var stars = new Array(); //create an array var count = colors.push("周杰伦", "王尼玛"); //push two items alert(count); //2 count = stars .push("张全蛋"); //push another item on alert(count); //3 var item = colors.shift(); //get the first item alert(item); //周杰伦 alert(colors.length); //2 /**所谓栈变队列,其实就是把栈颠倒过来再拉取*/
1 var values = [0, 1, 5, 10, 15]; 2 values.sort(); 3 alert(values); //0,1,10,15,5
要想按你预期的方式排序,可以给sort()里面加一个比较函数当作参数:
function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } } var values = [0, 1, 5, 10, 15]; values.sort(compare); alert(values); //0,1,5,10,15
简化版本的比较函数(sort只关心返回的是正数、负数还是0):
function compare(value1,value2){ return value2 - value1; }
var stars = ["周杰伦", "王尼玛", "张全蛋"]; var stars 2= stars .concat("太子妃", ["花千骨", "梅长苏"]); alert(stars); //周杰伦,王尼玛,张全蛋 alert(stars2); //周杰伦,王尼玛,张全蛋,太子妃,花千骨,梅长苏
var stars = ["梅长苏", "誉王", "靖王", "霓凰", "飞流"]; var stars2= stars.slice(1); var stars3= stars.slice(1,4); alert(stars2); //誉王,靖王,霓凰,飞流(从第一个位置开始切) alert(stars3); //誉王,靖王,霓凰(从第1个位置切到第3个位置,4表示半封闭,不包含)
var numbers = [1,2,3,4,5,4,3,2,1]; var everyResult = numbers.every(function(item, index, array){ return (item > 2); }); alert(everyResult); //false
上例中每一项都大于2才返回true。
var numbers = [1,2,3,4,5,4,3,2,1]; var someResult = numbers.some(function(item, index, array){ return (item > 2); }); alert(someResult); //true
上例中,有一个大于2就返回true。
var numbers = [1,2,3,4,5,4,3,2,1]; var filterResult = numbers.filter(function(item, index, array){ return (item > 2); }); alert(filterResult); //[3,4,5,4,3]
上例中,把大于2的都过滤掉。
var numbers = [1,2,3,4,5,4,3,2,1]; var mapResult = numbers.map(function(item, index, array){ return item * 2; }); alert(mapResult); //[2,4,6,8,10,8,6,4,2]
上例中,给每一项都乘以2.
var values = [1,2,3,4,5]; var sum = values.reduce(function(prev, cur, index, array){ return prev + cur; }); alert(sum);//15
累加求和返回,5项缩为1项。
/**匹配字符串中所有‘at‘的实例*/ var pattern1=/at/g; /**匹配第一个‘bat‘或‘cat‘,不分大小写*/ var pattern2 =/[bc]at/i; /**匹配所有以‘at‘结尾的3个字符组合,不分大小写*/ var pattern3=/.at/gi;
function sum(a,b){ return a + b; }
方法2:
var sum=function(a,b){ return a + b; }
var a="Jay Chou is a superstar"; var b=a.substring(0,8);
上例中,a是基本类型,但是a可以调用substring方法,是因为,后台自动完成a的包装操作,创建String类型的一个实例。Boolean,Number也类似。
标签:
原文地址:http://www.cnblogs.com/mesopotamia/p/5150030.html