初学时的一点笔记--数组

一、数组(Array):

        - 数组也是对象(内建对象)

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

        - 不同的是普通对象使用字符串作为属性名

                而数组是使用数字来作为索引操作元素

        - 索引:

      从0开始的整数就是索引

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

二、创建数组对象

向数组中添加元素

        语法:数组[索引] = 值

var obj=new Object();

        obj["name"]="zhangsan";

        obj["age"]=23;

                读取数组中的元素

                语法:数组[索引]

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

获取数组的长度,可以使用length这个属性获取

                语法:数组.length

                对于连续的数组,使用length可以获取到数组的长度(元素的个数)

                对于非连续的数组,使用length汇获取到数组的最大的(索引+1)

                        尽量不要创建非连续数组

修改length

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

-                         如果修改的length小于原长度,则多出的部分会被删除

三、JavaScript数组字面量

1.创建一个数组

var arr=new Array();

/使用字面量来创建数组

        var arr1=[];

        //语法:[]

        使用字面量创建数组时,可以在创建时就指定数组中的元素

        var arr2=[12,34,56,7,8,9,0,3,5];

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

        var arr3=new Array(12,34,56,7,8,9,0,3,5);

创建数组arr4,这个数组中只有一个元素10

var arr4=[10];

//创建一个长度为10的数组

        var arr5=new Array(10);

        //数组的值可以是任意的数据类型,包含对象的

        var arr6=["hello",123,false,undefined,null];

        //数组中可以存放函数

        var arr7=[function(){alert(123);},function(){alert("helloworld");}];

// arr7[0]();

        //二维数组

四、JavaScript数组的遍历foreach

                一般我们都是使用for循环去遍历数组,

                JS中还为我们提供了一个方法,用来遍历数组

                forEach()

                - 这个方法只支持IE8以上的浏览器

        IE8及以下的浏览器均不支持该方法,所以如果需要兼容IE8,则不要使用forEach

如果考虑到兼容问题还是使用for循环

v        ar arr=["小明","小红","小橙","小蓝","小绿"];

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

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

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

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

        第一个参数,就是当前正在遍历的元素

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

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

                arr.forEach(function(value,index,obj){

        });

五、JavaScript函数的方法apply与call

        call()与apply()

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

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

- 在调用call()与apply()可以将一个对象指定为第一个参数

                此时这个对象将会成为函数执行时的this

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

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

this的总结:

1.以函数的形式调用时,this始终都是window对象

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

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

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

function fun(){

}

fun();

fun.call();

fun.apply();

var obj={

name:"xiaoming",

age:23

};

fun.call(obj);

fun.apply(obj);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值