javascript核心语法————数组、API

1. ****数组:一组变量的集合,起一个统一的名字
             连续保存多个数据的引用类型的对象
    ***程序=数据结构+算法
      算法:程序执行的步骤
      数据结构:数据在内存中的存储结构
          好的数据结构,可以极大提高程序的执行效率。
          相关的一组数据,都要使用数组集中管理。


    如何使用数组:创建   取值    赋值
    1. 创建:4种:
       1. 创建空数组:var 数组名=[]; var 数组名=new Array();
  何时使用:暂时不知道数据内容,先创建空数组,再追加
       2. 创建同时初始化数组内容:var 数组名=[值1,值2,...]
           何时使用:创建时,就已经知道数组的内容


       3. 创建指定元素个数的数组: var 数组名=new Array(n);
                      创建一个新数组对象,同时初始化n个空元素
       4. 创建同时初始化数组内容:
var 数组名=new Array(值1,值2,...)


       数组中每个元素<==>一个变量: 用法和变量完全相同!
    2. 取值:获取数组中指定位置的元素内容
       下标:数组中标识每个元素位置的序号
           默认,自动从0开始,每个+1,到元素个数-1结束
       如何取值:var 元素的值=数组名[下标];
    3. 赋值:将新值放入指定位置的元素中保存
       如何赋值:数组名[下标]=新值;


    数组是引用类型的对象:
        数组名作为变量赋值或参数传递时,都是将地址值复制给对方
        后果,对方修改数组的内容,访问原数字名也会受影响


    null: 主动释放一个对象的引用。null本身是原始类型的值
    垃圾回收器:伴随主程序,同时运行的后台程序
                记录每个对象当前被引用的次数
              被引用的次数==0,垃圾回收器自动释放对象内存空间
    强烈建议:在使用完,较大对象后,主动赋值为null,总是好习惯
   
   4. 获取数组的元素个数:arr.length属性,不加圆括号
      固定套路:
     获得数组最后一个元素:arr[arr.length-1];
          向数组末尾追加一个新元素:arr[arr.length]=新值
        js中的数组 vs 其他语言中的数组:3个区别:
          1. 不限制元素的数据类型
          2. 不限制数组长度
          3. js的数组越界不会出错!
               赋值时:自动创建制定下标的元素,保存新值
                       length属性,会随最大下标而变化
               取值时:视图从没有的下标位置取值,返回undefined


    5. 遍历数组:从第0个元素开始,依次获取每个元素,
                 对每个元素执行相同的操作
           下标:遍历数组时,天生的循环变量!
 

1. 关联数组(hash数组):可自定义元素下标名称的数组
     索引数组:自动从0开始分配连续不重复的序号下标
     杨幂 81 53 89
       0   1  2  3
    如何创建关联数组:2种方式:
      1. 先创建普通空数组,再追加自定义下标的元素
         var ym=[];
         ym["sname"]="杨幂";
         ym["shx"]=81;
         ym["yw"]=53; 
         ym["yy"]=89;
    *关联数组的length属性失效*
    *关联数组中的key不能重复*
    关联(hash)数组优势:查找极快!和元素个数无关!
      2. 创建数组同时,初始化元素内容:
         var ym={"sname":"杨幂","shx":81,"yw":53,"yy":89};
                               key    value
         关联数组中保存的是多个key/value对儿
                               键  值
    如何遍历关联数组:
       for(var key in arr){
//依次取出arr中每个key,存在变量key中
arr[key]-->获得当前正在遍历的key中存储的值
       }


2. 数组API:
     什么是对象:封装数据,并提供对数据的操作方法的整体
     什么是数组对象:封装了一组相关的数据
                     提供了对数据的操作方法


     1. arr 2 String: 2个
         1. var str=arr.toString(); 
               默认只能以逗号分隔每个元素
      ***2. var str=arr.join("连接符");
               自定义元素间的连接符
         固定套路:
           1. 将字符数组,无缝拼接为单词:
              比如: var chars=["H","e","l","l","o"];
           2. 将单词数组,拼接为句子:
           3. 将数组转化为页面上的列表/选择元素:


     ***优化:频繁字符串拼接,推荐使用数组的join方法作为替代
            步骤:
   1. 先将要拼接的子字符串,放入一个数组中,临时保存
            2. 遍历结束后,一次性join成一个完整字符串 

    2. 连接数组和获取子数组:*不修改原数组对象,返回新数组对象
       concat: var newArr=arr.concat(值1,值2,[值3,值4].....)
    ***slice: var subArr=arr.slice(starti[,endi+1]);
                 starti: 开始的位置下标
                 endi: 获取到的位置下表
                 ***含头不含尾***
                 slice支持倒数下标
                 省略endi,从starti一直取到结尾


    3. splice:删除,插入,替换任意位置的任意个元素
        ***直接修改原数组 
删除:splice(starti,n);
        插入:splice(starti,0,新值1,新值2,...)
        替换:splice(starti,n,新值1,新值2,...)
    4. reverse(): 颠倒数组中所有元素的位置
        ***直接修改原数组
    





































      
          



























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值