05引用类型——JavaScript高级程序设计(笔记)

00.引用类型的值(对象)是引用类型的一个实例。引用类型是一种数据结构,用于将数据和功能组织在一起。他也常被称为类。引用类型有时候也被称为对象定义,因为他们描述的是一类对象所具有的属性和方法。

 

01.创建Object实例方式

  a.new创建

    var person = new Object();

    person.name = "Nicholas";

    person.age = 29;

  b.对象字面量

    var person = {

      name : "Nicholas",

      age : 29

    }

 

02.Array类型

  创建数组的基本方式有两种

  a.var colors = new Array();

  b.var colors = [];

  备注:数组最多可以包含4294967295个项,这几乎已经能够满足任何编程需求了。如果想添加的项数超过这个上限值,就会发生异常。

 

03.数组一些方法:

  a.(Array.isArray())

  b.toLocaleString()\toString()\valueOf()

  c.栈方法(push 和 pop):栈是一种(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。

  d.队列方法(shift):对立数据结构的访问规则FIFO(First-In-First-Out,先进先出)。

  e.操作方法:

    concat()方法:基于当前数组中的所有项创建一个新数组。

    slice()方法:它能基于当前数组中的一或多个项创建一个新数组

    indexOf()和lastIndexOf()方法:这两个方法都接收两个参数,要查找的项和表示查找起点位置的索引

    reduce和reduceRight:这个函数返回的任何值都会作为第一个参数自动传给下一个项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项。

 

04.Date类型

  a.日期格式化方法

    *toDateString:特定于实现格式显示星期、月、日和年

    *toTimeString:以特定于实现的格式显示时分秒和时区

    *toLocalDateString:以特定于实现的格式显示时分秒和年

    *toLocaleTimeString:以特定于实现的格式显示时分秒

    *toUTCString:以特定于是心啊的格式完整的UTC日期

 

05.RegExp类型

  var expression = /pattern/flags

  模式(pattern)部分可以是任何简单或复杂的正则表达式,可以包含字符类、限定符、分组、向前查找以及反向引用。每个正则表达式都可以带有一伙多个标志(flags),用以标明正则表达式的行为:g——表示全局模式;i——表示不区分大小写(case-insensitive)模式;m——表示多行(multiline)模式

 

06.Function类型

  a.有意思的根源,则在于函数实际上是对象。每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。由于函数是对象,因此函数名实际上也是一个指向函数对象的指针,不会与某个函数绑定。函数通常是使用函数声明语法定义的。

  b.函数声明与函数表达式:解析器在想执行环境中加载数据时,对函数声明和函数表达式并非一视同仁。解析器会率先读取函数声明,并使其在执行任何代码之前可用;至于函数表达式,则必须等到解析器执行到它所在代码行,才会真正被解释执行。

  c.函数内部属性:arguments、和this、callee的属性。备注:callee属性是一个指针,指向拥有这个arguments对象的函数。

    函数的名字仅仅是一个包含指针的变量而已。因此,即使是在不同的环境中执行,全局的sayColor函数与o.sayColor()执行仍然是同一个函数。口诀:this谁调用就是谁的this.

  d.caller当前谁调用的的对象

  e.call、apply和bind

  f.基本包装类型:Boolean、Number和String.

    备注:Boolean、Number、String是一个对象。

  g.String类型

    g1.charAt()和charCodeAt():方位字符串中特定字符的方法。

    g2.concat():用于将一或多个字符串拼接起来,返回拼接得到的新字符串

    g3.indexOf和lastIndexOf():有两个可以从字符串中查找子字符串的方法

    g4.trim()方法:删除前置和后缀的所有空格。

    g5.toLowerCase()、toLocaleLowerCase()、toUpperCase()、toLocaleUpperCase()

    g6.RegExp():String类型定义了几个用于在字符串中匹配模式的方法

    g7.localeCompare():比较两个字符串,并返回。

    g8.fromCharCode()接收一伙多个字符串编码,然后将他们转换成一个字符串。

 

07.单体内置对象

  a.Global对象

    温馨提示:能够解释代码字符串的能力非常强大,但也非常危险。因此在使用eval()时必须几位谨慎,特别是在用他执行用户输入数据的情况下。否则,可能会有恶意用户输入威胁你的站点或应用程序安全的代码。(所谓的代码注入)

  b.window对象

    JavaScript中的window对象除了扮演ECMAScript规定Global对象的角色外,还承担了很多别的任务。

  c.Math对象

    c1.Math对象的属性

    c2.min()和max()方法

    c3.random()方法

 

08.小结

  *引用类型与传统面向对象程序设计中的类相似,但实现不同

  *Object是一个基础类型,其他所有类型都从Object继承了基本行为

  *Array类型是一组值的有序列表,同时还提供了操作和转换这些值的功能

  *Date类型提供了有关日期和时间的信息,包括当前日期和时间以及相关的计算功能

  *RegExp类型是ECMAScript支持正则表达式的一个接口,提供了最基本的和一些高级的正则表达式功能。

  *函数实际上Function类型的实例,因此函数也是对象;而这一点正式JavaScript最有特色的地方。由于函数是对象,所以函数也拥有方法,可以用来增强其行为。

posted @ 2018-08-24 18:57  艾小小雨  阅读(106)  评论(0编辑  收藏  举报