zoukankan      html  css  js  c++  java
  • JavaScript基础 -- 数组

    数组(Array)

      - 数组也是一个对象

      - 他和我们普通对象功能类似,也是用来存储一些值的

      - 不同的是普通对象是使用字符串作为属性名的,而数组是使用数字来作为索引操作元素

      - 索引, 从0开始的整数就是索引

      - 数组的存储性能比普通对象好,在开发中我们经常使用数组来存储一些数据

      向数组中添加元素

        语法: 数组[ 索引 ] = 值

      读取数组中的元素

        语法: 数组[ 索引 ]

          如果读取不存在的索引,他不报错而是返回undefind

        可以使用length属性来获取到连续的数组的长度( 元素的个数 )

        对于非连续的数组, 它会返回最大索引+1

        如果修改length大于原长度,则多出部分会空出来

        如果修改的length小于原长度,则多出的元素会被删除

      数组的四个方法

        push()

          - 该方法可以向数组的末尾添加一个或多个元素,并返回数组的新长度

          - 可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到数组的末尾

          - 该方法会将数组新的长度作为返回值返回

        pop()

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

        unshift()

          - 向数组开头添加一个或多个元素,并返回新的数组长度

          - 像前面插入元素以后,其他元素的索引会自动调整

        shift()

          - 删除数组第一个元素,并将被删除的元素作为返回值返回

      数组的遍历

        -for循环遍历

        - ofEach()

          ofEach()方法需要一个函数作为参数

            - 像这种函数,有我们创建但不油我们调用的函数,被称为回调函数

            - 数组中有几个元素,函数就会执行几次,每次执行时,浏览器会将遍历到的元素,以实参的形式传递进来,我们可以定义形参,来读取这些内容

            - 浏览器会在回调函数中传递三个参数:

              - 第一个参数,就是当前遍历到的参数  

              - 第二个参数, 就是当前正在遍历的元素的索引

              - 第三个参数, 就是正在遍历的数组

        

      slice()和splice()

        slice():

          - 从某个数组里返回提取指定的元素

          - 该方法不会改变原数组,而是将截取到的元素封装到一个新数组中返回

          - 参数: 

            1.截取开始饿位置的索引,包含开始索引

            2.截取结束的位置的索引, 不包括结束索引

          - 结束索引可省略,代表截取从开始索引往后的所有元素

          - 结束索引可以传递一个负数,代表从后往前计算,-1位倒数第一个开始,-2倒数第二位

        splice():

          - 可以用于删除数组中的指定元素

          - 使用splice() 会影响到原数组,会将原数组中删除指定元素,并将被删除的元素作为返回值返回

          - 参数:

            第一个, 表示开始位置的索引

            第二个, 表示删除的数量

            第三个及以后, 可以传递一些新的元素,这些元素将会插入开始位置的索引前面

        

      数组的剩余方法

        concat()

          - 可以连接两个或多个数组,并将新的数组返回

          - 该方法不会对原数组产生影响

        join()

          - 该方法可以将数组转换为一个字符串

          - 该方法不会对原数组产生影响

          - 在join() 可以指定一个字符串作为数组元素的连接符,默认使用 , 

        reverse() 

          - 该方法用来翻转数组( 前边的去后边,后面的去前面)

          - 该方法会对原数组产生影响

        sort()

          - 可以用来对数组的元素进行排序

          - 该方法会对原数组产生影响,默认用Unicode编码进行排序,即使数字也会使用Unicode排序,可能会产生错误

          - 我们可以自己制定排序规则:

            在sort()添加一个回调函数,来指定排序规则

            回调函数中需要定义两个形参

            浏览器将会分别使用数组中的元素作为实参去调用回调函数

            使用哪个函数调用不确定,但a一定在b前面

           -浏览器会根据回调函数的返回值来决定元素的顺序,

            如果返回大于0的数,则元素会交换位置

            如果返回小于0的数,则元素不会交换位置

            如果返回一个0,则认为元素相等,不交换位置

      函数的call()和apply()方法

        - 这两个方法都是函数对象的方法,需要通过函数对象来调用

        - 当对函数调用call()和apply()都会调用函数执行

        - 在调用call()和apply()可以将一个对象指定为第一个参数,此时这个对象将会成为函数执行时的this

        - call()方法可以将实参在对象之后一次传递

        - apply()方法需要将实参封装到一个数组中统一传递

        

        - this的情况:

          1. 以函数形式调用是,this永远是window

          2. 以方法的形式调用时,this是调用方法的对象

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

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

      

  • 相关阅读:
    请问,如何在windows系统下面同时使用中文和英文的cmd?_百度知道
    boost计算随机数和计算crc32简单示例
    使用 boost 进行 CRC32 校验
    常见的Hash算法
    省了一笔钱,关点被爱国者无线硬盘打动入手了
    夏新大V二代,外型不错,屏幕偏小,电池偏小,质感上还可以提升两个level,把整个品味提一提,再把价格降到999,内置软件上再下点功夫就不错了
    藏红花
    我来自台湾:普力600 消毒锭_普力-600 消毒片PL-600 SH-XT-K礼盒小套组_易迅发现_易迅网
    我来自台湾:普力600 消毒锭_普力-600 消毒片PL-600 SH-XT-K礼盒小套组_易迅发现_易迅网
    中继联通chinaunicom热点。求路由推荐。-无线路由器-中国无线论坛
  • 原文地址:https://www.cnblogs.com/-Aqiu/p/13778867.html
Copyright © 2011-2022 走看看