js对象大致分为三类:内置对象 宿主对象 自定义对象
1.内置对象
由ESMAScript实现提供的,不依赖宿主环境的对象,这些对象在ESMAScript程序执行前就已经存在了。
- Array、Function 、Boolean 、Error、symbol、JSON
- Date、Number、Math: 日期、数字、执行数学计算的对象
- String、 RegExp :用来表示和操作字符串的对象
- Global 、arguments(函数参数集合)
2.宿主对象:运行环境提供的对象
可以在全局作用域里,通过this访问。(严格模式下得到的是undefined)
所有 BOM 和 DOM 对象都是宿主对象。
常见的宿主对象
浏览器对象
- Window 指当前的浏览器窗口
- Location 包含当前url的信息
- Navigator 包含用户浏览器的基本信息
- Screen 包含用户客户端显示屏的信息
- History 包含浏览器的历史(url)的集合
DOM对象
- Docuemnt 代表整个HTML文档、用来访问页面中的所有元素(为window对象的属性)
- Element 表示HTML元素
- Attr 表示HTML元素属性
- Event 表示事件的状态
3.自定义对象
JS对象的属性和方法
常用方法
Object.keys() 返回一个由对象属性键名组成的数组
Object.values() 返回一个由对象属性键值组成的数组
Object.entries() 返回一个由对象属性键值对数组组成的数组
注:该对象的属性为对象自身的不含继承且可遍历
Object.is() 判断两个值是否相等
Object.assign() 用于对象的合并
Object.hasOwnProperty() 判断对象自身属性中(非继承属性中)是否具有指定的属性
Object.isPrototypeOf() 判断一个对象是否在另一个对象的原型链上
Object.getPrototypeOf() 返回指定对象的原型对象
常用属性
prototype: 原型对象
constructor: 构造器
_proto_: 用来构成原型链