JavaScript初级——数组

一、数组简介

    1、数组也是一个对象,和普通对象功能类似,也是用来存储一些值的,不同的是普通对象是使用字符串作为属性名的,而数组是使用数字来作为索引操作元素。

    2、索引:

                        从0开始的整数就是索引

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

    4、使用 typeof 检查一个数组时,会返回 object 。

    5、向数组中添加元素

                        语法:数组 [ 索引 ] = 值;

    6、读取数组中的元素

                        语法:数组 [ 索引 ];

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

    7、对于连续的数组,使用 length 可以获取到数组的长度(元素的个数);对于非连续的数组,使用 length 会获取到数组的最大的索引+1。尽量不要创建非连续数组。

    8、修改 length

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

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

    9、向数组的最后一个位置添加元素

语法: 数组[ 数组.length ] = 值;

二、数组字面量

    1、使用字面量来创建数组

                        语法:[  ]

     2、使用字面量来创建数组时,可以再创建时就指定数组中的元素。

    3、使用构造函数创建数组时,也可以同时添加元素,将要添加的元素作为构造函数的参数传递。元素之间使用 , 隔开。

    4、数组中的元素可以是任意的数据类型,也可以是对象、函数、数组。

三、数组常用的方法

    1、push()

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

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

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

    2、pop()

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

    3、unshift()

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

向前边插入元素以后,其他元素索引会依次调整。

    4、shift()

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

    5、数组的遍历:遍历数组就是将数组中的所有元素提取出来。

    6、forEach()

① 一般我们都是使用 for 循环去遍历数组,JS中还为我们提供了一个方法,用来遍历数组。

② forEach()这个方法只支持IE8以上的浏览器,IE8以下的浏览器均不支持该方法,所以如果需要兼容IE8,则不要使用 forEach(),还是使用 for  循环来遍历。

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

—— 像这种函数,有我们创建但是不由我们调用的,我们称为 回调函数

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

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

        第一个参数:当前正在遍历的元素

        第二个参数:当前正在遍历的元素的索引

        第三个参数:正在遍历的数组

    7、slice()

—— 可以用来从数组中提取指定元素

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

—— 参数:

                ① 截取开始的位置索引,包含开始索引

                ② 截取结束的位置索引,不包含结束索引

—— 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素。

—— 索引可以传递一个负值,如果传递一个负值,则从后往前算,如:-1表示倒数第一个,-2表示倒数第二个

    8、splice()

—— 可以用来删除数组中的元素

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

—— 参数:

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

                ② 第二个表示删除的数量

                ③ 第三个及以后表示可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边

五、数组的剩余方法

1、concat()

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

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

2、join()

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

—— 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回。

—— 在 join()中可以指定一个字符串作为参数,这个字符串将会成为数组中元素的连接符。

如果不指定连接符,则默认使用 , 作为连接符。

3、reverse()

—— 该方法用来反转数组(前边的去后边,后边的去前边)。

—— 该方法会直接修改原数组。

4、sort()

—— 可以用来对数组中的元素进行排序。

—— 也会影响原数组,默认会按照 Unicode 编码进行排序。

—— 即使对于纯数字的数组,使用 sort() 排序时,也会按照 Unicode 编码来排序。所以对于数字进行排序时,可能会得到错误的结果。

—— 我们可以指定排序的规则,可以再 sort() 添加一个回调函数,来指定排序规则,回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数。使用哪个元素调用不确定,但是肯定的是在数组中a一定在b前边

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

—— 如果返回一个大于0的值,则元素会交换位置。

—— 如果返回一个小于0的值,则元素位置不变。

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

—— 如果需要升序排列返回a-b;降序排列返回b-a

六、函数的方法

1、call() apply()

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

—— 当两个函数调用 call()和 apply()都会调用函数执行。

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

—— call()方法可以将实参在对象之后依次传递;apply()方法需要将实参封装到一个数组中统一传递。

2、this 的情况:

① 以函数形式调用时,this 永远都是 window 。

② 以方法的形式调用时,this 是调用方法的对象。

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

④ 使用 call 和 apply 调用时,this是指定的那个对象。

七、arguments

1、在调用函数时,浏览器每次都会传递进两个隐含的参数:

        ① 函数的上下文对象: this

        ② 封装是实参的对象: arguments

2、arguments 是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度。

3、在调用函数时,我们所传递的实参都会在 arguments 中保存。

4、arguments.length 可以用来获取实参的长度。

5、我们即使不定义形参,也可以通过 arguments 来使用实参,只不过比较麻烦。

6、 arguments[ 0 ]  表示第一个实参

      arguments[ 1 ]  表示第二个实参

7、arguments 有一个属性叫做 callee ,这个属性对应一个函数对象,就是当前正在指向的函数的对象。

八、Date对象

1、在JS中使用 Date 对象来表示一个时间。

2、如果直接使用构造函数创建一个 Date 对象,则会封装为当前代码执行的时间。

3、创建一个指定的 Date 对象,需要在构造函数中传递一个表示时间的字符串作为参数

日期的格式:  月份/日/年   时:分:秒

4、常用的方法

(1)getDate()

—— 获取当前日期对象是几日。

(2)getDay()

—— 获取当前日起对象是周几。

—— 会返回一个 0 ~ 6 的值。

                0 表示周日

(3)getMonth()

—— 获取当前对象的月份。

—— 会返回一个 0 ~ 11 的值。

                  0 表示 1 月

                11 表示 12 月

(4)getFullTear()

—— 获取当前日期对象的年份。

(5)getTime()

—— 获取当前对象的时间戳。

—— 时间戳,指的是从格林威治标准时间的 1970年1月1日0时0分0秒到当前日期所花费的毫秒数(1秒=1000毫秒)

—— 计算机底层在保存时间时使用的都是时间戳。

本文的分享到此结束,下一节继续跟大家分享JavaScript初级学习的Math工具类,它封装了数学运算的相关属性和方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fan_web

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值