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,这个属性对应一个函数对象,就是当前正在指向的函数的对象。

  • 相关阅读:
    Restful api 返回值重复的问题
    fastDFS遇到的并发问题recv cmd: 0 is not correct, expect cmd: 100
    忽略警告@SuppressWarnings的用法
    Mysql 一些命令记录
    python 操作excel实现替换特定内容
    python 提取目录中特定类型的文件
    python使用tkinter无法获取输入框的值
    python使用tkinter无法给顶层窗体的输入框设定默认值
    游戏基础知识第一弹
    python 3.7.4 安装 opencv
  • 原文地址:https://www.cnblogs.com/maxuefeng/p/13628774.html
Copyright © 2011-2022 走看看