第5章:引用类型

一.Object类型

1.两种定义方式

(1)构造函数法

var person  = new Object();
person.name = "Nicholas";
person.age = 29;

(2) 字面量表示法

var person = {
    name : "Nicholas",
    age : 29
}
或者

var person = {
    "name" : "Nicholas",
    "age" : 29
}

2.属性表示法

(1)person.name

(2)person["name"]

方括号表示法的好处是可以通过变量来访问属性,例如:
var propertyName = "name";
alert(person[propertyName]);


二. Array类型
1. 两种定义方式

(1)构造函数法:

var colors = new Array(3);
var names = new Array("Greg","Breg");

(2)数组字面量表示法:

var colors = ["red", "blue", "green"];
var names = [];
(3) 数组的.length属性并不是只读的,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。


2.检测数组

(1)varlue instanceof Array
(2)Array.isArray(value),这个方法只适用于IE9+的浏览器

3.转换方法
(1)toString()方法返回由数组元素字符串形式的,一个以逗号分隔的字符串。
var colors = ["red", "blue", "green"];
colors.toString();    //red,blue,green

(2)valueOf()返回的还是数组
var colors = ["red", "blue", "green"];
colors.valueOf();    //red,blue,green

(3)join方法,可以使用不同的分隔符来构建这个字符串
var colors = ["red", "blue", "green"];
colors.join("||");    //red||blue||green

4. 栈方法(先进后出)
(1)push()方法可以接受任意数量的参数,把他们逐个添加到数组末尾,并返回修改后数组的长度。
(2)pop()方法则是从数组末尾移除最后一项,减少数组的length,然后返回移除的项。

5.队列方法(先进先出)
(1)shift()能够移除数组中的第一个项并返回改项,同时将数组长度减1.
    可以用shift()结合push(),制作队列方法。
(2)unshift()能够在数组前端添加任意个项,并返回新数组的长度。
     可以用 unshift ()结合pop(),制作反向队列方法。

6.排序方法
(1)reverse()方法可以反转数组顺序。
(2)sort()方法默认是按照升序排列,比较的方式是把数组元素转换成字符串然后比较排序。
var values = [0,1,5,10,15];
var values.sort(); //0,1,10,15,5
sort()方法可以接受一个比较函数作为参数,比较函数接收两个参数,如果第一个参数应该位于第二个参数之前则返回负数,如果两个参数相等则返回0,如果第一个参数应该位于第二个参数之后则返回正数。(可以理解为当要交换数组元素顺序时返回正数,其他情况不变。)
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];
var values.sort(compare); //0,1,5,10,15

7.操作方法
(1)concat()方法没有参数的情况下,只是复制当前数组并返回副本。如果concat()方法的参数是一个或者多个数组,则该方法会将这些数组中的每一项添加到结果数组中。

(2)slice()方法可以接受一个或者两个参数。即返回项的起始和结束位置。
var colors = ["red","green","blue","yellow","purple"];
var colors2 = colors.slice(1);   //["green","blue","yellow","purple"];
var colors3 = colors.slice(1,4)  //["green","blue","yellow"];
      
(3)splice()方法返回的值是删除的项组成的数组。
          删除:只要指定2个参数,要删除的第一个项的位置和要删除的项数。例如splice(0,2)会删除数组中的前两项;
          插入:可以向指定位置插入任意数量的项,只需3个参数,起始位置,0(要删除的项数),要插入的项。如果要插入多个项,可以再传入第4,第5,任意多个项。
          替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项目,只需3个参数:起始位置,要删除的项数,要插入的项。例如splice(2,1,"red","green")会删除当前数组位置2的项,然后再从位置2开始插入字符串"red","green"。

8.位置方法(IE9+支持)
(1)indexOf()接收两个参数:要查找的项和(可选的)表示查找起点位置的索引,查找顺序是从数组开头向后查找
(2)lastIndexOf()方法的参数与indexOf()方法相同,知识查找顺序是从数组的末尾开始向前查找。

9.迭代方法(IE9+支持)
     5个迭代方法都接受两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象--影响this的值。传入这些方法中的函数接收3个参数:数组项的值,该项在数组中的位置和数组对象本身。
    (1)every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
    (2)filter():对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
    (3)forEach():对数组中的每一项运行给定函数。这个方法没有返回值。
    (4)map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
    (5)some():对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
     以上方法都不会修改数组中的包含的值。

10.缩小方法(IE9+支持)
    (1)reduce()会迭代数组的所有项,然后构建一个最终返回的值。接收两个参数:一个在每一项上调用的函数和(可选的)作为缩小基础的初始值。传入reduce()的函数接收4个参数:前一个值,当前值,项的索引和数组对象。
var values = [1,2,3,4,5];
var sum = values.reduce(function(prev,cur,index,array){
    return prev + cur;
});
alert(sum); //15

    (2)reduceRight()用法与reduce()一致,只是reduce()方法从数组的第一项开始遍历,reduceRight()是从数组的最后一个开始遍历。



三.Date类型(暂不总结)
四.RegExp类型(暂不总结)
五.Function类型(暂不总结)
六.基本包装类型(暂不总结)
七.单体内置对象(暂不总结)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值