JavaScript-数组简介
(1)数组(Array)
-- 数组也是对象(内建对象)
-- 它和我们普通对象功能类似,也是用来存储一些值的
-- 不同的是普通对象使用字符串作为属性名,而数组是使用数字来作为索引操作元素
--索引:从0开始的整数就是索引
--数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据.
(2)向数组中添加元素
语法: 数组[索引] = 值
(3)读取数组中的元素
语法: 数组[索引]
--如果读取不存在的索引,不会报错而是返回undefined
(4)获取数组的长度,可以使用length这个属性获取
语法: 数组.length
--对于连续的数组,使用length可以获取到数组的长度(元素的个数)
对于非连续的数组,使用length汇取到数组的最大的(索引+1)
尽量不要创建非连续数组.
(5)修改length
--如果修改的length大于原长度,则多出部分会空出来
--如果修改的length小于原长度,则多出的部分会被删除
2.JavaScript-数组字面量
(1)使用字面量来创建数组
语法: []
(2)使用字面量创建数组时,可以在创建时就指定数组中的元素.
(3)使用构造函数创建数组时,也可以同时添加元素,将要添加的元素作为
构造函数的参数传递,元素之间使用,隔开.
(4)数组的值可以是任意的数据类型,包含对象
(5)数组中可以存放函数
3.JavaScript-数组的方法
(1)把数组的所有元素串联成一个字符串. 元素通过指定的分隔符进行分隔
--提示: 分隔符是自己定义的
(2)push()
--该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度
--可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到数组的末尾.
--该方法会将数组新的长度作为返回值返回.
(3)pop()
--该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回.
(4)unshift()
--向数组开头添加一个或多个元素,并返回新的数组长度
--向前边插入元素以后,其他元素的索引会依次调整.
4.JavaScript-数组的遍历
定义: 所谓的遍历数组,就是将数组中所有的元素都取出来
JavaScript-数组遍历forEach方法(拓展)
一般我们都是使用for循环去遍历数组,Js中还为我们提供了一个方法,用来遍历数组
- forEach()
这个方法只支持IE8以上的浏览器
IE8几以下的浏览器均不支持该方法,所以如果需要兼容IE8,则不要使用forEach
如果考虑到兼容问题还是使用for循环
forEach()方法需要一个函数作为参数
-- 像这种函数,由我们创建但是不由我们调用,我们称为回调函数
-- 数组中有几个元素函数就会执行几次,每次执行时,浏览器将会遍历到的元素以
实参的形式传递进来,我们可以来定义形参读取这些内容
-- 浏览器会在回调函数中传递三个参数:
第一个参数, 就是当前正在遍历的元素
第二个参数, 就是当前正在遍历的元素的牵引
第三个参数, 就是正在遍历的数组
5.JavaScript-函数的方法apply和call方法(拓展)
call()与apply()
-- 这两个方法都是函数对象的方法,需要通过函数对象来调用
-- 当对函数调用call()和apply()都会去调用函数执行
-- 在调用call与apply()可以将一个对象指定为第一个参数,此时这个对象将会成为函数执行是的this
-- call()方法可以将实参在对象之后一次传递
-- apply()方法需要将实参封装到一个数组中统一传递.
6.this的总结:
1.以函数的形式调用时,this始终都是window对象
2.以方法的形式调用时,this就是调用方法的对象
3.以构造方法的形式调用时,this是新创建的那个对象
4.使用call与apply调用时,this是指定的那个对象
7.JavaScript-函数中的arguments(拓展)
在调用函数时,浏览器每次都会传递进来两个隐含的参数;
1.函数的上下文对象 this
2.封装实参的对象arguments
-- arguments是一个类数组对象,它也可以通过索引来操作数组,也可以获取长度
-- 在调用函数时,我们所传递的实参都会在arguments中保存
-- arguments.length可以用来获取实参的长度
-- 我们即使不定义形参,也可以通过arguments来使用实参,比较麻烦
arguments[0] 表示第一个实参
arguments[1] 表示第二个实参
-- 它里面有一个属性叫做callee.
这个属性对应一个函数对象,就是当前正在执行的函数对象
8.JavaScript-日期对象Data(内建对象)
定义: 在Js中使用Date对象来表示一个时间
-- 创建一个Date对象 例:var d=new Date();
-- 如果时间使用构造函数创建一个Date对象,则会封装为当前代码执行的时间
-- 创建一个指定的时间对象
-- 需要在构造函数中传递一个表示时间的字符串作为参数
-- getDate() 获取当前日期对象是几日
-- getDay() 获取当前日期是星期几,会返回一个0~6的值
-- 0 表示周日 1 表示周一 ...... 6 表示周六
-- getMonth() 获取当前日期对象的月份,会返回一个0~11的值
-- 0 表示一月 1 表示二月 ...... 11 表示十二月
-- getFullYear() 获取对象以四位数字返回年份
-- 获取当前日期对象的小时 var hours=d. getHours();
-- 获取当前日期对象的分钟 var housr=d. getMinutes();
-- 获取当前日期对象的秒数 var second=d. getSeconds();
-- getTime()
-- 获取当前日期对象的时间戳
-- 时间戳,指的是从格林威治标注时间的1970年1月1日,0时0秒到当前日期所花费的毫秒数(1秒=1000毫秒)
-- 计算机低层在保存时间时使用都是时间戳
注意:
1.注意时差的问题,我们的时间是北京时间.
2.可以使用时间戳来测试代码的执行性能.
9.JavaScript-Math对象
Math对象和其他对象不同,它不是一个构造函数
它属于一个工具类不用创建对象,它里面封装了数学运算相关的属性和方法、
-- 例如: Math.pI 表示圆周率(约等于3.14159)
-- Math.abs(x) - 返回一个数的绝对值
-- Math.sin(x) - 返回一个数的正弦
-- Math.ceil() - 可以对一个数进行向上取整,小数位只要有值就自动进1
-- Math.floor() - 可以对一个数进行向下取整,小数部分会被舍掉
-- Math.round() - 可以对一个数进行四舍五入取整
-- ceil 向上取整
-- floor 向下取整
-- round 四舍五入取整
-- Math.random()
-- 可以用来生成一个0-1之间的随机数
-- 可以用来生成一个0-10的随机数(整数)
-- 可以用来生成一个0-x之间的随机数(整数)
-- Math.round(Math.random()*X)
-- 可以用来生成一个1-10之间的随机数
-- 可以用来生成一个x-y之间的随机数
--我们需要做的知识符将不再使用的对象设置为null即可.
这是我所学到的JavaScript数组,想分享给你们,希望可以帮助到你们。以上就是我的分享,如有更好的方法,欢迎大家推荐!写错的地方,欢迎大家在评论区指正!谢谢