JavaScript学习笔记5

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值