zoukankan      html  css  js  c++  java
  • 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;
     
      谢谢阅读,请多指教,共勉。
     
     
     
  • 相关阅读:
    How to disable daily upgrade and clean on Ubuntu 16.04
    跟李沐学Ai 03 安装【动手学深度学习v2】
    When using 'npm' it requires me to login to github
    Wrong detect of Parsing error: invalid-first-character-of-tag-name in expression.
    18.04: a stop job is running for unattended upgrades shutdown
    NCSC recommend against forcing regular password expiry,
    OWASP Testing for Weak Password Policy--> When must a user change their password
    NIST Special Publication 800-63: Digital Identity Guidelines Frequently Asked Questions
    Mo Tu We Th Fr Sa Su
    工程变更-ECN,ECO,ECR,ECA
  • 原文地址:https://www.cnblogs.com/Tracey-1023/p/7501870.html
Copyright © 2011-2022 走看看