您的位置:首页 > Web前端 > JavaScript

JavaScript学习笔记5

2015-08-11 19:39 741 查看

Object类型

var person = new Object();
person.name = 'Jayson';
//对象字面量表示法,不会调用Object构造函数(Firefox3及更早版本会)
var person = {
name : 'Jayson'
};
var student = {};
student.name = 'Jayson';
//访问时可以使用两种表示法
person.name;
person['name'];
//方括号表示法可以通过变量来访问
var name = 'name';
person[name];


Array类型

数组每一项可以保存任何类型的数据,数组大小是可以调整的,数组最多能有4294967295个项

var colors = new Array();
var colors = new Array(5);
var colors = new Array('red','blue');
//数组字面量表示法,不会调用Array构造函数(Firefox3及更早版本会)
var colors = [];
var colors = ['red','blue',,,,];  //会创建5项的数组,IE8及更早会创建6项,不要这样定义
var colors = ['red','blue'];
//访问
colors[0];
colors[1] = 'green';
colors[99] = 'whrite';  //length为100
colors[colors.length] = 'black'; //在末尾添加一项
colors.length;
colors.length = 4;


检测数组

value instanceof Array

Array.isArray(value) (ECMAScript5新增)

转换方法

var p1 = {
toLocaleString : function(){
return 'Jayson';
},

toString : function(){
return 'hu';
}
}
var p2{
toLocaleString : function(){
return 'H';
},

toString : function(){
return 'AY'
}
}
var p = [p1,p2];
alert(p);  //hu,AY
alert(p.toString());  //hu,AY
alert(p.valueOf());  //hu,AY
alert(p.toLocaleString());  //Jayson,H


栈方法

count = array.push(‘red’,’green’); //推入两项(数组末尾)

item = array.pop(); //取出最后一项

队列方法(两种)

array.push();

item = array.shift(); //取出第一项

count = array.unshift(‘red’,’blue’); //推入两项(数组前端),IE7或更早返回undefined

array.pop();

重排序方法

array.reverse(); //反转数组顺序

array.sort(compare); //比较每一项toString()得到的字符串,升序排列

function compare(v1,v2){
if(v1<v2){
return -1;
}else if(v1>v2){
return 1;
}else{
return 0;
}
}
var array = [1,5,8,10,16];
array.sort();
alert(array);  //1,10,16,5,8
array.sort(compare);
alert(array)  //1,5,8,10,16


操作方法

concat()

var array = [‘red’];

var array2 = array.concat(‘blue’,[‘black’,’green’]); //[red,blue,black,green]

slice(start[,end])

var array = [‘red’,’blue’,’green’,’black’];

var array2 = array.slice(1,3); //[blue,green]

var array3 = array.slice(-2,-1); //[green]

splice(start,length[,new])

var array = ['red','blue','green','black'];
var removed = array.splice(0,2);
alert(removed); //red,blue
alert(array); //green,black
var removed = array.splice(1,1,'white','yellow');
alert(removed); //black
alert(array); //green,white,yellow


位置方法

indexOf(search[,fromIndex]) 从前往后搜

lastIndexOf(search[,fromIndex]) 从后往前搜

找到返回在数组中的位置,否则返回-1

比较search和数组的每一项时会使用全等于操作符

var person = {name:'hay'};
var peopole = [{name:'hay'}];
alert(people.indexOf(people));  //-1
morePeople = [person];
alert(morePeople.indexOf(person))  //0


迭代方法 (ECMAScript 5 新增)

every(function(item当前值,index,array){}) 如果function每一项返回true,则返回true

some(…) 如果function任一项返回true,则返回true

filter(…) 返回function返回true的项组成的数组

map(…) 返回function每次调用结果组成数组

forEach(…) 没有返回值

缩小方法 (ECMAScript 5 新增)

reduce(function(prev前一项值,cur当前值,index,array){}) 从左遍历到右

reduceRight(…) 从右遍历到左

var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,index,array){
return prev + cur;
});
alert(sum);  //15
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: