JavaScript学习笔记5

来源:互联网 发布:大意失荆州知乎 编辑:程序博客网 时间:2024/05/24 06:40

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为100colors[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,AYalert(p.toString());  //hu,AYalert(p.valueOf());  //hu,AYalert(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,bluealert(array); //green,blackvar removed = array.splice(1,1,'white','yellow');alert(removed); //blackalert(array); //green,white,yellow
  • 位置方法

    • indexOf(search[,fromIndex]) 从前往后搜
    • lastIndexOf(search[,fromIndex]) 从后往前搜
      找到返回在数组中的位置,否则返回-1
      比较search和数组的每一项时会使用全等于操作符

      var person = {name:'hay'};var peopole = [{name:'hay'}];alert(people.indexOf(people));  //-1morePeople = [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
0 0
原创粉丝点击