一、深入对象
1、创建对象的三种方式
(1)利用对象字面量创建对象
(2)利用new Object创建对象
(3)利用构造函数创建对象
2、构造函数
构造函数:是一种特殊的函数,主要用来初始化对象。
使用场景:常规的{...}语法允许创建一个对象。比如我们创建了佩奇的对象,继续创建乔治的对象还需要重新写一遍,此时可以通过构造函数来快速创建多个类似的对象。
有两个约定:
它们的命名以大写字母开头;它们只能有“new”操作符来执行。
3、实例成员&静态成员
实例成员:通过构造函数创建的对象称为实例对象,实例对象中的属性和方法称为实例成员(实例属性和实例方法)。
静态成员:构造函数的属性和方法被称为静态成员(静态属性和静态方法)。
说明:
静态成员只能构造函数来访问;静态方法中的this指向构造函数。
二、内置构造函数
在JS中最主要的数据类型有6种:字符串、数值、布尔、undefined、null、对象(引用类型)。
但是,我们会发现有些特殊情况:
其实字符串、数值、布尔等基本类型也都有专门的构造函数,这些我们称为包装类型。JS中几乎所有的数据都可以基于构成函数创建。
内置构造函数:
引用类型:Object、Array、RegExp、Date等
包装类型:String、Number、Boolean等
1、Object
它是内置的构造函数,用于创建普通对象。
推荐使用字面量方式声明对象,而不是Object构造函数。
三个常用的静态方法(静态方法就是只有构造函数Object可以调用的):
· Object.keys:获取对象中所有属性(键),返回的是一个数组
· Object.values:获取对象中所有属性值,返回的是一个数组
· Object.assign:常用于对象拷贝,经常使用的场景给对象添加属性
2、Array
Array是内置的构造函数,用于创建数组。
创建数组建议使用字面量创建,不用Array构造函数创建。
(1)数组常见实例方法 - 核心方式
reduce:返回累计处理的结果,经常用于求和等。
如果没有起始值,则上一次值以数组的第一个数组元素的值;每一次循环,把返回值给做为下一次循环的上一次值;如果有起始值,则起始值做为上一次值。
(2)数组常见方法 - 其他方法
把伪数组转换为真数组:
静态方法Array.from()
3、String
在JS中的字符串、数值、布尔具有对象的使用特征,如具有属性和方法
之所以具有对象特征的原因是字符串、数值、布尔类型数据是JS底层使用Object构造函数“包装”来的,被称为包装类型。
常见实例方法:
4、Number
Number是内置的构造函数,用于创建数值。
常用方法:
toFixed()设置保留小数位的长度