JS中的内置对象

Posted Tracey_W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中的内置对象相关的知识,希望对你有一定的参考价值。

JS中的数组

1、数组的基本概念?
  数组是在内存空间中连续存储的一组有序数据的集合。
  元素在数组中的顺序,称为下标。可以使用下标访问数组的每个元素。
2、如何声明一个数组?
  ① 使用字面量声明:var arr = []; // 声明了一个空数组
  【注】在JS中,同一数组,可以存储各种数据类型
  ② 使用new关键字声明:var arr = new Array(参数);
    参数:a. 省略 表示创建一个空数组;
       b. 整数 表示声明一个length为指定长度的数组。 但是这个length可以随时可变可增加,即数组的长度可变可增加。
       c. 参数为逗号分隔的多个数值,表示数组的多个值。new array(1,2,3) == [1,2,3];
3、数组中,元素的读写/增删?
  ① 读写:通过下标访问元素,下标从0 开始。eg. arr[1] = "haha";
  ② 增删:
    a. 使用delete关键字, 删除数组中的某一个值,删除后数组的长度不变,对应位置变为undefined。 eg.delete arr[1]; // 删除数组中的某一个值
    b. arr.pop(); 删除数组中的最后一个值。相当于 arr.length -= 1;与delete的区别:数组长度-1
    c. arr.shift(); 删除数组中的第一个值。
    d. arr.unshift(值); 在数组开头(第0个位置)新增一个值。
    e. arr.push(值); 在数组最后一个位置新增一个值。
    f. 直接访问数组没达到的下标,可以动态追加。arr[100] = 1; 中间如果有空余下标,将存入undefined。
4、数组中的其他方法(函数)
  ① join("分隔符") :将数组用指定分隔符链接为字符串,当参数为空时,默认用,分隔。
  ② concat():原数组不会被改变。将数组与两个或多个数组的值链接为新数组‘
  【注】 concat 连接时,如果有二维数组,至多拆一层;eg.
      [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]]
  ③ arr.push(值) :数组最后增加一个;
    arr.unshift(值): 数组开头增加一个 —— 返回新数组的长度;
    arr.pop():数组最后删除一个;
    arr.shift(): 数组开头删除一个 —— 返回被删除的值;
  【上述方法 都会改变原数组】
  ④ reverse():原数组被改变。将数组翻转,倒序输出。
  ⑤ arr.slice(begin,end):原数组不会被改变。截取数组中的某一部分,并返回截取的新数组。
    传入一个参数,表示开始区间,默认截取到数组最后;
    传入两个参数,表示开始和结束的下标,左闭右开(包含begin, 不包含end)
    两个参数可以为负数,表示从右边开始数,最后一个值为-1
  ⑥ sort():原数组被改变 ,将数组进行升序排列。
    1) 默认情况下,会按照每个元素首字母的ASCII码值进行排序;[3,1,5,12].sort(); -> [1,12,3,5]
    2) 可以传入一个比较函数,手动指定排序的函数算法;函数默认接收两个值a,b 如果返回值>0,则证明a>b
      arr.sort(function(a,b){
        return b-a; //降序排列
        return a-b; //升序排列
      });
  ⑦ IndexOf(value,index):返回数组中第一个value值所在的下标,如果没有找到返回-1;
    lastIndexOf(value,index):一个value存在多个的情况下,返回数组中最后一个value值所在的下标,如果没有找到返回-1;
    如果没有指定 index,则表示在整个数组中查找 value
    如果指定了index,则表示从index开始,向后查找value
  ⑧ forEach():专门用于循环遍历数组。接收一个回调函数,回调函数可以接收两个参数,
    第一个参数为数组每一项的值,第二个参数为数组的下标。【IE8之前不支持】
    arr.forEach(function(item,index){
        console.log(item);
    });
  ⑨ map():数组映射。使用方式与forEach()相同。与forEach()不同的是,map可以有return返回值,表示将原数组的每个值进行操作,返回一个新数组
    var arr0 = arr.map(function( item,index ){ //数组映射 返回一个新数组
      console.log(item);
      return item-1;
    });
  ⑩ .splice(no-1,1);插入、删除、替换(第三个参数)数组中的元素。
5、二维数组与稀疏数组(了解)
  ① 二维数组:数组中的值依然是一个数组形式 。
    eg. arr var a = [[1,2,3],[3,4,5]]; //两行三列
    读取二维数组:a[行号][列号]
  ② 稀疏数组:数组中的索引是不连续的。(length要比数组中实际的元素个数大)
 
基本数据类型&引用数据类型
  ① 基本数据类型:赋值时,是将元变量中的值,赋值给另一个变量。赋值完成后,两个变量相互独立,修改其中一个值,另一个不会变化。
  ② 引用数据类型:赋值时,是将原变量在内存中的地址,赋值给另一个变量。赋值完成后,两个变量中存储的是同一个内存地址,访问的是同一份数据,修改其中一个值,另一个也会改变。
  ③ 数值型、字符串型、布尔型等变量属于基本数据类型;
数组、对象属于引用数据类型。
 
其他内置对象
1、boolean 类
  两种声明方式:可以使用字面量方式声明一个单纯的变量;
  也可以使用 new Boolean() 声明一个boolean类型的对象。用typeof检测为object类型。
2、number 类
  常用方法:
    MAX_VALUE:返回number类可表示的最大值;
    MIN_VALUE:返回number类可表示的最小值;
    .toString():将数值类型转换为字符串类型。(常用)
    .toLocaleString():将数值按照本地格式顺序转换为字符串,
    一般从右开始,三个一组加逗号分隔
    .toFixed(n):将数字保留n位小数,并转化为字符串格式。(常用)
    .toPrecision():将数字格式化为指定长度。n - 不含小数点的位数长度;如果n小于原数字长度,则用科学计数法表示。如果n大于原数字长度,则小数点后补0;
    .valueOf():返回number对象的基本数字值。
3、string 类
  1) 属性:str.length 返回字符串的长度即字符数;
      字符串支持类似于数组的下标访问机制:str[0]
  2) .toLocaleLowerCase();将字符串所有字符转成小写
   .toLocaleUpperCase();将字符串所有字符转成大写
  3) .charAt(n); 截取数组的第n个字符,相当于str[n] (常用)
  4) .indexOf("str",index); 从index位置开始,查找字串在字符串中出现的位置,
    如果没有找到返回-1,其他同数组的indexOf方法
   .lastIndexOf("str",index); 同数组
  5) .substring(begin,end); 从字符串中截取子串
    只传入一个参数:表示从begin开始到最后
    传入两个参数,表示从begin到end的区间,左闭右开。
  6) .split():将字符串以指定分隔符分隔。存入数组中。
       传入空"" 表示将字符串的每个字符分开存入数组中。
  7) .replace("old","new"); 将字符串的第一个old替换为new。
    第一个参数,可以是 普通字符串,也可以是 正则表达式。
    如果是普通字符串,则只替换第一个old;如果是正则表达式,可以根据正则的写法要求,进行替换
3、date 日期类 对象
  1) new Date() :返回当前最新时间。
    new Date("2017,12,31,12:34:12"); 返回指定时间。
  2) 常用方法:
    ① .getFullYear():获取年份。
    ② .getMonth():获取月份。
    ③ .getDate(); 获取一个月中的第几天
    ④ .getDay(); 获取一个周中的第几天 0-表示周天
 
自定义对象
1、基本概念
  ① 对象:拥有一系列无序属性和方法的集合。
  ② 键值对:对象中的数据,用以键值对的形式存在。对象的每个属性和方法,都对应值的一个键名,以键取值。
  ③ 属性:【对象中的变量】;描绘对象特征的一系列变量;
  ④ 方法:【对象中的函数】;描述对象行为的一系列函数。
2、对象的声明
  ① 使用字面量声明:
  【注】 对象中的数据是以键值对形式存储,键与值之间用:分隔。多个键值对之间用,分隔
      对象中的键 可以是除了数组/对象以外的其他任何数据类型,但是我们一般使用普通变量名
      对象中的值 可以是任何数据类型,包括数组和对象。
    var obj = {
       key1 : value1,
       key2 : value2,
       func1 : function(){}
    }
  ② 使用new关键字声明:
    var obj = new Object();
    obj.key1 : value1;
    obj.key2: value2;
    obj.func1 : function(){}
3、对象中属性和方法的读写
  ① .运算符:
    对象内部:this.属性 this.方法();
    对象外部:对象名.属性 对象名.方法();
  ② ["key"]调用:对象名["属性名"] 对象名["方法名"]();
    【注】 如果键中包含特殊字符,则只能用第②种方式。
    对象中 直接写变量名,默认为调用全局变量。如果需要调用对象自身的属性或者方法,需要使用对象名.属性,或者this.属性。
    this.age person.age 推荐使用this关键字。
4、删除对象的属性和方法
  delete 对象名.属性名/方法名;
  eg. delete person.age;
 
  谢谢阅读,请多指教,共勉。
 
 
 

以上是关于JS中的内置对象的主要内容,如果未能解决你的问题,请参考以下文章

js内置对象之Date对象

js中的内置对象

JavaScript内置对象

JavaScript内置对象

js中的内置对象

js内置对象