• 【学习笔记】五:引用类型


    引用类型的值(对象)是引用类型的一个实例。ECMAScript提供了很多原生的引用类型(例如Object),以便开发人员用以实现常见的计算任务。

    1.Object类型

      1)创建Object实例的两种方法:new Object()和对象字面量表示法。一般常用对象字面量标识法:一是因为代码量少,二是对象字面量可以在函数传参时封装可选参数。

      2)访问对象属性的两种方法:点表示法和方括号方法。一般用点表示法,方括号方法只有在变量访问属性、属性名中包含特殊字符时使用。

    2.Array类型

      1)创建Array实例的两种方式:使用Array构造函数和数据对象字面量。

        ECMAScript数组的每一项都可以保存任何类型的数据。同数组的大小是动态可变的,即随着数据的添加自动增长。可以通过修改数组的length属性,动态增加或者减小数组的长度。

      2)检测数组:instanceof、Array.isArray()(ES5中新增)

      3)转换方法:toLocaleString()、toString()、valueOf()方法

      4)数组栈方法:push()、pop()

      5)数组队列方法:shift()、unshift()

      6)数组重新排序方法:reverse()、sort(),有时候通过将比较函数传参给sort()方法实现按数值排序(因为sort()函数默认是按字符串比较排序的,绝大多数的时候需要按数值比较排序)。

      7)数组常用操作方法:concat()、slice()、indexOf()、lastIndexOf()

      8)数组迭代方法:every()、filter()、forEach()、map()、some()

      9)数组归并方法:reduce()、reduceRight()

    3.Date类型

      1)初始化:Date.parse()和Date.UTC(),不过new Date() 函数会模仿这两个函数的初始化过程,直接生成日期。

    4.RegExp 类型

      1)正则表达式的构造有两种形式:字面量形式和构造函数形式,两种形式参数略有区别,构造函数形式需要双重转移,同时字面量形式始终会共享同一个RegExp实例,而构造函数形式创建的每个都是一个新实例。ES5中规定每次创建都应创建RegExp新实例。

      2)实例属性:global、ignoreCase、lastIndex、multiline、source

      3)实例方法:exec()、test()

      4)构造函数属性:input、lastMatch、lastParen、leftContext、multiline、rightContext

    5.Function 类型(函数是对象,函数名是指针)

      1)没有重载

      2)函数声明和函数表达式的区别:解析器在向执行环境中加载数据之前,对函数声明和函数表达式并非一视同仁。解析器会通过一个名为函数声明提升的过程率先读取函数声明,并使其在执行任何代码之前可用;至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解析器执行。

      3)函数可以做参数,可以做函数返回值。

      4)函数内部属性:

        callee:函数arguments对象的一个属性,该属性是一个指针,指向拥有这个arguments对象的函数。(在函数内部可以代替函数名调用函数,消除函数使用的耦合性)

        caller:函数对象的属性caller,保存着调用当前函数的函数的引用。

      ·但是在严格模式下arguments.callee会导致错误。

      5)函数属性和方法:

        length:函数接受的参数个数

        apply和call:修改函数运行作用域

        bind:创建一个函数实例,其this值会被绑定到bind函数的参数值

        toLocaleString和toString:返回函数代码,可以在调试代码时使用。

    6.基本包装类型

      ES为基本类型Boolean、Number、String 创建了相应的基本包装类型,从而是这几个基本类型可以使用一下操作方法操作这些数据。基本包装类型是特殊的引用类型,但是其生存周期近存在于代码的执行瞬间,由后台自动创建完成相应的处理,一般不会手动使用。

      1)Boolean基本包装类型:建议永远不要手动使用

      2)Number基本包装类型:toFixed()、toExponential()、toPrecision()

      3)String基本包装类型:  length、charAt()、charCodeAt()、concat()、slice()、substring()、substr()、indexOf()、lastIndexOf()、trim()、toLowerCase()、toUpperCase()、replace()、split()。

    7.单体内置对象

      定义:由ES实现提供的,不依赖于宿主环境的对象,这些对象在ES程序执行之前就已经存在了。Object、Array、String、Global、Math

      1)Global对象

        所有全局作用域中定义的属性和函数,都是Global对象的属性。

        encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()、eval()

        Web浏览器将这个global全局对象作为window对象的一部分实现的。

      2)Math对象

         min()、max()、ceil()、floor()、round() 

  • 相关阅读:
    删除List集合中的元素你碰到过这样的陷阱吗?
    从spring框架中的事件驱动模型出发,优化实际应用开发代码
    SpringBoot启动原理及相关流程
    基于SpringBoot实现定时任务的设置(常用:定时清理数据库)
    C#开发中常用的加密解密方法
    http://go.microsoft.com/fwlink/?linkid问题
    移动端开发必须知道的小技巧
    工作中遇到的细节问题总结(二)
    redis分布式锁和消息队列
    join和wait
  • 原文地址:https://www.cnblogs.com/lauzhishuai/p/9890962.html
Copyright © 2020-2023  润新知