• javascript高级程序设计笔记(第5章 引用类型)


    1、Object类型

      两种方式定义:对象字面量、new

      两种方式访问:括号、点


    2、Array类型

      2.1  定义方式:new Array、数组字面量

      2.2  lenght属性:可以利用它方便的想数组末尾添加元素

      2.3  检测数组

    instanceof

    isArray()方法

       2.4  toString()、soLocaleString()、valueOf()、join()方法

         2.5、栈方法(尾部加入或去除元素)

           push()方法:逐个添加到数组末尾,并返回修改后的数组长度

         pop()方法:返回数组的最后一项    

    var colors = new Array(); // 创建一个数组
    var count = colors.push("red", "green"); // 推入两项
    alert(count); //2
    count = colors.push("black"); // 推入另一项
    alert(count); //3
    var item = colors.pop(); // 取得最后一项
    alert(item); //"black"
    alert(colors.length); //2
    var colors = ["red", "blue"];
    colors.push("brown"); // 添加另一项
    colors[3] = "black"; // 添加一项
    alert(colors.length); // 4
    var item = colors.pop(); // 取得最后一项
    alert(item); //"black"

      2.6 队列方法(数组前端添加或移除元素)  

      unshift()方法:在数组前端添任意项并返回新数组的长度

      shift()方法:在数组前端推入任意项并返回该项

      2.7 reverse()、sort()方法

    一般的排序

    function compare(value1, value2) {
    if (value1 < value2) {
      return 1;
    } else if (value1 > value2) {
      return -1;
    } else {
      return 0;
    }
    }
    var values = [0, 1, 5, 10, 15];
    values.sort(compare);
    alert(values); // 15,10,5,1,0

        对于数值类型或者其valueOf()方法会返回数值类型的对象类型 

    function compare(value1, value2){
    return value2 - value1;
    }

      2.8 concat()方法

      2.9 slice()方法:

    var colors = ["red", "green", "blue", "yellow", "purple"];
    var colors2 = colors.slice(1);
    var colors3 = colors.slice(1,4);
    alert(colors2); //green,blue,yellow,purple
    alert(colors3); //green,blue,yellow

      2.10 splice()方法:

         主要用途是向数组的中部插入项,splice()方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(如果没有删除任何项,则返回一个空数组)

     删除:可以删除任意数量的项,只需指定2 个参数:要删除的第一项的位置和要删除的项数。

     插入:可以向指定位置插入任意数量的项,只需提供3 个参数:起始位置、0(要删除的项数)和要插入的项。如果要插入多个项,可以再传入第四、第五,以至任意多个项。

     替换:可以向指定位置插入任意数量的项,且同时删除任意数量的项,只需指定3 个参数:起始位置、要删除的项数和要插入的任意数量的项。插入的项数不必与删除的项数相等。

    2.11 indexOf()和lastIndexOf()

    2.12 迭代方法:

    every(),filter(),forEach(),map(),some() 

    一般传入三个参数:item(那一项),index,arrray(该数组)

    2.13  reduce,reduceRight 

        一般传入四个参数:prev(前一个值),cur(当前值),index(项的索引值),array(数组对象)


    3、Date类型

    Date.parse(参数); 这里的参数表示日期的一个字符串参数,具体格式因地区而异

    Date.UTC(); :传入的参数分别代表年、月,日,时、分、秒、毫秒

    Date.now();

    toString()与toLocaleString():这两个方法在不同的浏览器上返回的日期和时间格式各不相同

    valueOf(): 返回此时间的时间戳

        日期的格式化方法和日期组件方法(具体的查看手册)


    4、RegExp类型

    4.1 RegExp定义方法:

      字面量:

      构造函数:(接收两个参数:一个是要匹配的字符串模式,另一个是可选的标志字符串)。注意在使用字符串模式时,必须对所有元字符进行双重转义

      两种定义方式的区别:看下面一段代码

    var re = null,
    i;
    for (i=0; i < 10; i++){
      re = /cat/g;
      re.test("catastrophe");                 //只返回一次TRUE,第二次从从索引值为3的支付开始找……                  
    }
    for (i=0; i < 10; i++){
      re = new RegExp("cat", "g");
      re.test("catastrophe");                       //每次都返回TRUE,因为每次迭代都会创建一个新的RegExp实例
    }

    4.2 RegExp的实力属性:

     global:布尔值,表示是否设置了g 标志。
     ignoreCase:布尔值,表示是否设置了i 标志。
     lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0 算起。
     multiline:布尔值,表示是否设置了m 标志。
     source:正则表达式的字符串表示,按照字面量形式而非传入构造函数中的字符串模式返回。

    4.3 RegExp的实例方法

    exec()方法:

    exec()接受一个参数,即要应用模式的字符串,然后返回包含第一个匹配项信息的数组;或者在没有匹配项的情况下返回null。

    返回的数组虽然是Array的实例,但包含两个额外的属性:index 和input。其中,index 表示匹配项在字符串中的位置,而input 表示应用正则表达式的字符串。

    在数组中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配的字符串(如果模式中没有捕获组,则该数组只包含一项)。

    模式中时候设置全局g的调用exec()方法的区别

    test()方法:一般都只用来判断返回TRUE或false

    toLocaleString和toString()方法:

    4.4 RegExp构造函数的属性:

    长属性和对应的短属性名:

    注意:对这些属性的的支持各个浏览器不一样

    RegExp.$1、RegExp.$2…RegExp.$9,分别用于存储第一、第二……第九个匹配的捕获组

    4.5 模式的局限性


    5、Function类型


    6、基本包装类型


    7、单体内置对象


    8、小结

    对象在JavaScript 中被称为引用类型的值,而且有一些内置的引用类型可以用来创建特定的对象,
    现简要总结如下:
     引用类型与传统面向对象程序设计中的类相似,但实现不同;
     Object 是一个基础类型,其他所有类型都从Object 继承了基本的行为;
     Array 类型是一组值的有序列表,同时还提供了操作和转换这些值的功能;
     Date 类型提供了有关日期和时间的信息,包括当前日期和时间以及相关的计算功能;
     RegExp 类型是ECMAScript 支持正则表达式的一个接口,提供了最基本的和一些高级的正则表
    达式功能。
    函数实际上是Function 类型的实例,因此函数也是对象;而这一点正是JavaScript 最有特色的地
    方。由于函数是对象,所以函数也拥有方法,可以用来增强其行为。
    因为有了基本包装类型,所以JavaScript 中的基本类型值可以被当作对象来访问。三种基本包装类
    型分别是:Boolean、Number 和String。以下是它们共同的特征:
     每个包装类型都映射到同名的基本类型;
     在读取模式下访问基本类型值时,就会创建对应的基本包装类型的一个对象,从而方便了数据
    操作;
     操作基本类型值的语句一经执行完毕,就会立即销毁新创建的包装对象。

    在所有代码执行之前,作用域中就已经存在两个内置对象:Global 和Math。在大多数ECMAScript
    实现中都不能直接访问Global 对象;不过,Web 浏览器实现了承担该角色的window 对象。全局变
    量和函数都是Global 对象的属性。Math 对象提供了很多属性和方法,用于辅助完成复杂的数学计算
    任务。

  • 相关阅读:
    CSS 两个行内块元素,宽度相加刚好等于父盒子容器的元素,但第二个元素掉在第二行解决办法
    js 自定义获得类class和获得id
    学习笔记:BSGS(拔山盖世?)算法
    解题报告: luogu P1040
    解题报告:SP18155 ABSP1
    解题报告:luogu P1099
    Thussat 游记
    解题报告:luogu P2220
    学习笔记:卢卡斯定理(并没有学会)
    从线性筛到欧拉函数,你十有八九能懂吧!
  • 原文地址:https://www.cnblogs.com/liguwe/p/3960179.html
Copyright © 2020-2023  润新知