JS中的数组与对象

1、数组:正则表达式

 一、数组的基本慨念:
       数组是在内存空间中连续存储的一组有序数据的集合
      元素在数组中的顺序,成为下标。可使用下标访问数组的每一个元素
 二、如何声明一个数组
     ① 使用字面量声明:
         在JS中,同一数组,能够存储各类数据类型
         例如:var reg = [1,"换个影子",true,{},null,func];  //调用数组中的函数:reg[5]();
     ②  使用new关键字声明: var reg = new Array(参数);
          参数能够是:
             a、参数省略:表示建立一个空数组;
             b、参数为一个整数:声明一个length为指定长度的数组。可是,这个length能够随时可变可追加
       算法

var reg = new Array(5);
reg[6]=1;


            c、参数为逗号分隔的多个数值:表示数组的多个值
               new Array(1,2,3,4) == [1,2,3,4];
    三、数组中元素的读写和增删  
      ① 读写:经过下标访问元素,下标从0开始 reg[1]="haha"
      ② 增删:
         a、使用delete关键字,删除数组的某一个值,删除以后,数组的长度不变,对应位置元素变为undefined。eg :delete reg[1];
         b、reg.pop():删除数组的最后一个值,长度-1。至关于reg.length -= 1;
         c、reg.shift():删除数组的第一个值。长度-1.
         d、reg.unshift(新值):在数组的第0个位置新增一个值;长度+1.
         e、reg.push(新值):在数组的最后一个位置新增一个值;长度+1.   
         f、直接访问数组没达到的下标,能够动态追加
            reg[100] = 1;中间若是有空余下标,将存入undefined;
    
    四、数组中的其余方法:
       ① join():【原数组不会被改变】将数组用指定分隔符链接为字符串,并返回。当参数为空时,默认用逗号分隔;  var str = arr.join("-");
       
       ② concat():【原数组不会被改变】  将数组与多个数组的值链接为新数组,并返回 var arr2= arr.concat(arr1,arr1)
           concat()链接时,若是有二维数组,则至多能拆一层[]
           [1,2]. concat([3,4],[5,6]) ->  [1,2,3,4,5,6]
           [1,2]. concat([3,4,[5,6]]) ->  [1,2,3,4,[5,6]]
      
       ③ push():数组最后增长一个,unshift()  数组开头增长一个。返回新数组的长度; 原长度+1
           pop():删除数组最后一个,   shift()删除数组开头一个。  返回被删除的值    原长度-1
            ps:上述方法均会改变原数组
     
       ④ reverse():【原数组被改变】 将数组反转倒序输出 arr.reverse();
     
       ⑤ slice(begin,end):【原数组不会被改变】截取数组中的某一部分,并返回截取的新数组
          》》传入一个参数,表示开始区间,默认截到数组最后
          》》传入两个参数:表示开始和结束的下标,左闭右开区间
          》》两个参数能够为负数,表示从右边开始数,最后一个值为-1;
     
       ⑥ sort():【原数组被改变】 将数组进行升序排列:
          》》默认状况下,会按照每一个元素首字母的ASCII值进行排序
           [1,3,2].sort() -> [1,2,3]
          》》传入一个比较函数,手动指定排序的函数算法
             函数将默认接收两个值a、b,若是返回值>0,则证实a>b;
         数组

arr.sort(function(a,b){
         return a-b;        //升序排列
       //  return b-a;        //降序排列      
 });


        
       ⑦ indexOf(value,index):返回数组中第一个value值所在的下标,若是没有找到返回-1;
           lastIndexOf(value,index):返回数组中最后一个value值所在的下标,若是没有找到返回-1;
              》》若是没有指定index,则表示全数组查找value;
              》》若是指定了index,则表示从index开始。向后查找value;
       ⑧ forEach():专门用于循环遍历数组,接收一个回调函数,回调函数接收两个参数,第一个参数为数组的值,第二个参数为下标
           【IE8以前不支持此函数】
     函数

  arr.forEach(function(item,index){
        console.log(item);        //单独打印数组的每一个值
})

 


       ⑨  map():数组映射。使用方法与forEach()相同。不一样的是,map能够有返回值,表示原数组的每一个值进行操做后,返回一个新数组
           【IE8以前不支持此函数】
        this

 var arr1 =  arr.map(function(item,index){
          console.log(item);        //单独打印数组的每一个值
          return item+2;             //返回的新数组的值为原数组的值加2
})


    五、二维数组与稀疏数组(了解)     
       ① 二维数组:数组中的值,依然是一个数组形式。
          eg:var arr = [[1,2],[3,4],[5,6]];//至关于两行三列
           读取二维数组:arr[行号][列号];
       ② 稀疏数组:数组中的索引是不连续的。(length要比数组中实际的元素个数大)spa

2、内置对像code

一、Boolean 类
       也有两种声明方式: 可使用字面量方式声明一个单纯的变量;用typeof检测为Boolean类型
                    也可使用new Boolean()声明一个boolnean类型的对象。用typeof检测为Object类型对象

var bool = true;
var bool1 = new Boolean(true);

二、Number类
    Number.MAX_VALUE:返回NUmber类可表示的最大值
    Number.MIN_VALUE:返回NUmber类可表示的最小值
☆ num1.toString():将数值类型(num1)转换为字符串类型
    num1.toLocaleString():将数值按照本地格式顺序转换为字符串,通常从右开始,三个一组加逗号分隔
☆ num1.toFixed(n):将数字保留n为小数,并转为字符串格式
    num1.toPrecision(n):将数字格式化为指定长度,
        n表示不含小数点的位数长度,若是n小于原数字长度,则用科学计数法表示,若是n大于原数字长度,则小数点后补零;
    num2.valueOf():返回Number对象(num2)的基本数字值;blog

三、 string类
    一、 属性:.length: 返回字符串的长度,即字符数;
       字符串支持相似数组的下标访问方式:str[0];
    二、.toLowerCase(): 将字符串全部字符转成小写
        .toUpperCase():将字符串全部字符转成大写
     三、.charAt(n):截取数组的第n个字符至关于str[n];
     四、.substring(begin,end):从字符串中截取子串
         》》只传入一个参数:从begin到最后
         》》传入两个参数:从begin到end的区间,左闭右开;
     五、.indexOf("str",index):查找子串在字符串中出现的位置,若是没有找到,返回-1,其余同数组的indexof方法;
        .lastIndexOf("i",4):同数组;
     六、.split("分隔符"):将字符串用已指定分隔符分隔,存入数组中,传入空""表示字符串的每一个字符分开放入数组
     七、.replace("old","new"):将字符串的第一个old替换为new。 返回新字符串   原字符串不变
        》》第一个参数能够是,普通字符串,也能够是正则表达式
        》》若是是普通字符串,则只替换第一个old,若是是正则表达式,则能够根据正则的写法要求,进行替换排序

四、Date时期类 
  一、 new Date():返回当前最新时间
     new Date("2017,8,23,12:34:56");返回指定的时间
  二、经常使用方法:(当前时间)
   .getFullYear():获取4位年份
   .getMonth():获取月份0-11
   .getDate():获取一个月中的第几天  1-31
   .getDay():获取一周的第几天  0-6  0:表示周天
   .getHours():获取小时
   .getMinutes():获取分钟
   .getSeconds():获取秒

 3、自定义对象
 一、基本慨念:
     ① 对象:对象是拥有一系列无序属性和方法的集合;
     ② 键值对:对象中的数据,是以键值对的方式存在。对象的每一个属性和方法,都对应一个键名,以键取值;
     ③ 属性:描述对象特征的一系列变量,称为属性。【对象中的变量】
     ④ 方法:描述对象行为的一系列的函数,称为方法。【对象中的函数】
     
 二、对象的声明:
     ① 使用字面量声明:var obj = {
                    key1 : value1,
                    key2 : value2,
                    func1 : function(){}
                  }
   
       >>对象中的数据是以键值对的形式存储,键与值之间用:分隔,键值对之间用,分隔。
       >>对象中的键能够是除了数组、对象之外的任何数据类型。可是,通常咱们只用普通变量名做为键
       >>对象中的值能够是任何数据类型,包括数组和对象。
    
    ② 使用new关键字声明:var obj = Object();  //声明一个空的对象
                   Object.key1 = value1; //给对象添加键值对
                   Object.key2 = value2;
                   Object.func1 = function(){};
          
   三、对象中属性和方法的读写:    ① .运算符:       对象外部: 对象名.属性  对象名.方法       对象内部: 对象名.属性 ,或this.属性              ② 经过["key"]调用: 对象名["属性名"]  对象名["方法名"]();        >>若是键中包含特殊符号,则只能用第②中方式;             >>对象中直接写变量名,默认为调用全局变量。         若是须要调用对象自身的属性或方法。须要使用对象名.属性或this.属性。           rson.age  this.age 均可以,但推荐使用this关键字。    ③ 删除对象的属性和方法:delete 对象名.属性名/方法名          delete person.age;

相关文章
相关标签/搜索