第五章引用类型
对象在JavaScript中被称为引用类型的值,而且有一些内置的引用类型可以用来创建特定的对象
总结:
- 引用类型与传统面向对象程序设计中的类相似,但实现不同;
- Object是一个基础类型,其他所有类型都从Object继承了基本的行为;
- Array类型是一组值得有序列表,同时还提供了操作和转换这些值的功能;
Date类型提供了有关日期和时间的信息,包括当前日期和时间以及相关的计算功能;
函数实际上是Function类型的实例,因此函数也是对象;
- 三种基本包装类型分别是:Boolean、Number和String
Object类型
- 两种方法对象声明;
- 访问对象属性时使用的都是点表示法,JavaScript中也可以使用方括号表示法来访问对象的属性。
Array类型
创建数组的基本方式有两种
- 第一种是使用Array构造函数:
- 空 数组
- 如果预先知道数组要保存的项目数量,也可以给构造函数传递该数量,而该数量会自动变成length属性的值;
- 给构造函数传递值也可以创建数组。
- length属性:数组length的属性不是只读的,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。
检测数组
- 使用instanceof操作符就能得到满意结果。
- 如果从一个框架向另一个框架传入一个数组,那么传入的数组与第二个框架中原生创建的数组分别具有各自不同的构造函数。
- ECMAScript5新增了Array.isArray()方法。
Date类型
Date类型使用自UTC(Coordinated Universal Time,国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。
日期格式:
- “月/日/年“,如6/13/2004;
- “英文月名 日,年”,如January 12,2004;
- “英文星期几 英文月名 日 年 时:分:秒 时区”,如Tue May 25 2004 00:00:00 GMT-0700。
- ISO 8601 扩展格式 YYYY-MM-DDTHH:mm:ss.sssZ(例如 2004-05-25T00:00:00)。
Date类型将日期格式化为字符串的方法,如下:
- toDateString()——以特定于实现的格式显示星期几、月、日和年;
- toTimeString()——以特定于时间的格式显示时、分、秒和时区;
- toLocaleDateString()——以特定于地区的格式显示星期几、月、日和年;
- toLocaleTimeString()——以特定于实现的格式显示时、分、秒;
- toUTCString()——以特定于实现的格式显示完整的UTC日期。
- ECMPScript提供两个方法:Date.parse()和Date.UTC()。
- getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
- getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)
- getFullYear() 从 Date 对象以四位数字返回年份。
- getMonth() 从 Date 对象返回月份 (0 ~ 11)。
- getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
- 时,分,秒
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)
RegExp对象
- ECMAScript通过RegExp类型来支持正则表达式。
Function类型
- 解析器在向执行环境中加载数据时,对函数声明和函数表达式并非一视同仁
- 解析器会率先读取函数声明,并使其执行代码之前可用(可以访问)
- 读取并将函数声明添加到执行环境中。对代码求值时,JavaScript引擎在第一遍会声明函数并将他们放到源代码树的顶部。
- ECMAScript中没有函数重载
声明两个同名函数,结果是后面的函数覆盖了前面的ECMAScript中没有函数重载概念的原因 - 作为返回值的函数
函数作为返回值是极有用的技术,是“闭包”技术的基础之一。
Number类型
- toFixed():按指定小数位返回数值的字符串表示。
- toExponential():返回以指数表示法表示的数值的字符串形式。
- toPrecision():返回固定大小格式,也可能返回指数格式,具体规则是看哪种格式比较合适。该方法接收一个参数指定表示数值的所有数字的位数。