zoukankan      html  css  js  c++  java
  • 数组复习。

    数组(Array):

         数组也是一个对象,他和普通对象功能类似,也是用来存储一些值的。不同的是普通对象是使用字符串作为属性名的。而数组是使用数字作为索引(index)(从0开始的整数)操作元素。

         创建数组对象。var arr=new Array(); 使用type of 检查数组,返回的是object。向数组中添加元素,语法:数组[索引]=值 读取数组中的元素,语法:数组[索引]     获取数组的长度(元素的个数):对于连续的数组,可以使用length属性来获取数组的长度,语法:数组.length。对于非连续的数组,使用length会获取到数组的最大索引+1。修改length,如果大于原长度,则多出部分会空出来,如果小于原长度,则多出的元素会被删除。向数组的最后一个位置添加元素,语法:数组[数组.length] =值    arr[arr.length]。

         使用字面量来创建数组,语法:[ ]。数组中的元素可以是任意的数据类型,也可以是对象,也可以是函数,数组中也可以放数组,称为2维数组。

         创建数组:

           push():该方法可以向数组的末尾添加一个或多个元素,并返回数组的新长度。可以将要添加的元素作为方法的参数传递,这些元素会自动添加到数组的末尾。该方法会将数组的新的长度作为返回值返回。

           pop():该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回。

           unshift():该方法可以向数组的开头添加一个或多个元素,并返回数组的新长度。

           shift():可以删除数组的第一个元素,并将删除的元素作为返回值返回。

           slice():可以用来从数组中提取指定元素。需要2个参数,一个是截取开始的索引,一个是截取结束的索引。该方法不会改变元素的数组,会将截取到的元素封装到一个新数组中返回。包含开始索引,不包括结束索引。第二个参数可以省略不写,此时会截取从开始索引到后面的所有元素。同时可以传递一个负值,-1表示倒数第一,-3表示倒数第三。

           contact():可以连接两个或多个数组(也可以传元素),并将新的数组返回。该方法不会对原数组产生影响。

           join():可以将数组转换成字符串,该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回,在join中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符,如果不使用连接符,默认使用逗号作为连接符,如果什么都不使用,可以使用空串。

           reverse():用来反转数组,前面的去后面的,后面的去前面的。该方法会直接修改原数组。

           sort():可以对数组中的元素进行排序,也会影响原数组,默认按照Unicode编码进行排序。我们可以自己指定排序的规则,我们可以在sort()中,添加一个回调函数,来指定排序规则,回调函数中可以定义2个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数,使用哪个元素调用不确定,但是可以肯定的是数组中a一定在b的前面。浏览器会根据回调函数的返回值来决定元素的排序,如果返回一个大于0的值,则元素会交换位置。如果返回一个小于0的值,则元素位置不变,如果返回一个0,则认为两个元素相等,也不交换位置。如果需要升序排列,则返回a-b,如果需要降序排列,则返回b-a.

           splice():可以删除数组中的指定元素,并添加新的元素。使用splice会影响原数组,将指定的元素从原数组中删除,并将删除的元素作为返回值返回。第一个表示开始位置的索引,第二个表示删除的数量。第三个及以后可以传递一些新的元素,这些元素可以自动插入到开始索引的前面。

    数组的遍历:

          所谓遍历数组,就是将数组中的所有元素都取出来。一般都是用for循环遍历数组,js中提供了一个方法遍历数组for Each()。forEach()需要一个函数作为参数。像这种函数有我们创建,但不由我们调用的函数,我们称为回调函数。数组中有几个元素,函数就会执行几次,每次执行时,浏览器会将遍历到的元素以实参的形式传递进来,我们可以定义形参,来读取这些内容。浏览器会在回调函数中传递三个参数。第一个参数就是当前遍历的元素,第二个参数就是当前遍历的元素的索引,第三个参数就是正在遍历的数组。

          call()和apply()都是函数对象的方法,需要通过函数对象来调用。当对函数调用call()和apply(),都会调用函数执行。在调用call()和apply()时可以将一个对象指定为第一个参数。此时这个对象将成为函数执行时的this.call()方法可以将实参在对象之后依次传递。apply()方法需要将实参封装到一个数组中统一传递。

    this的情况:

        1:以函数形式调用时,this 永远是window。

        2:以方法的形式调用时,this 时调用方法的对象。

        3:以构造函数的形式调用时,this 是新创建的那个对象。

        4:使用call()和apply()调用时,this是指定的那个对象。

    在调用函数时,浏览器每次都会传递进2个隐藏的参数:

        1:函数的上下文对象this.

        2:封装实参的对象arguments. arguments 是一个类数组对象,也可以通过索引来操作对象,也可以获取长度。在调用函数时,我们所传递的参数都会封装到arguments中。在调用函数时,我们所传递的参数都会在arguments中保存。arguments.length可以获取实参的长度。我们即使不定义形参,也可以通过agruments来使用实参。他里边有一个属性,叫做callee,这个属性对应一个函数对象,就是当前正在指向的函数的对象。

  • 相关阅读:
    TextBox 只有下划线
    can't find web control library(web控件库)
    DropDownListSalesAC”有一个无效 SelectedValue,因为它不在项目列表中。
    IDE、SATA、SCSI、SAS、FC、SSD 硬盘类型
    如何打印1px表格
    CSS控制打印 分页
    Virtual Server could not open its emulated Ethernet switch driver. To fix this problem, reenable the Virtual Server Emulated Et
    Xml中SelectSingleNode方法中的xpath用法
    热带水果莫入冰箱?水果存放冰箱大法
    探索Asp.net的Postback机制
  • 原文地址:https://www.cnblogs.com/maxuefeng/p/13628774.html
Copyright © 2011-2022 走看看