FAQ?
JS 的各种位置,比如 clientHeight,scrollHeight,offsetHeight ,以 及 scrollTop, offsetTop,clientTop 的区别?
clientHeight:表示的是可视区域的高度,不包含 border 和滚动条 offsetHeight:表示可视区域的高度,包含了 border 和滚动条 scrollHeight:表示了所有区域的高度,包含了因为滚动被隐藏的部分。 clientTop:表示边框 border 的厚度,在未指定的情况下一般为 0 scrollTop:滚动后被隐藏的高度,获取对象相对于由 offsetParent 属性指定的父坐 标(css 定位的元素或 body 元素)距离顶端的高度。
const 定义函数和直接用 function 声明有什么区别?
| 特性 | const 定义函数 | function 声明 |
|---|---|---|
| 提升 (Hoisting) | 不提升 | 提升 |
| 作用域 | 块级作用域 | 当前作用域 |
| 是否支持箭头函数 | 支持 | 不支持 |
this 绑定 | 静态绑定(若为箭头函数) | 动态绑定 |
| 是否可以重新赋值 | 不可以 | 无重新赋值概念 |
- 用const声明函数时,你可以避免函数被重新赋值,代码的可维护性会更高,特别是当你不希望函数被意外重写时,const更加安全。
- 用function声明函数时,你可以享受函数提升的好处,使代码看起来更灵活,适合在任何位置调用函数。
JS中本地对象、内置对象、宿主对象分别是什么,有什么区别?
在 JavaScript 中,本地对象、内置对象和宿主 对象的定义和区别如下:
1. 本地对象(Native Objects)
- 定义:本地对象是由 JavaScript 语言本身提供的对象,不依赖于任何外部环境。
- 例子:
Object、Array、Function、Number、String、Boolean、RegExp等。 - 特点:这些对象的构造函数和方法是 JavaScript 语言标准的一部分,能够在任何 JavaScript 环境中使用。
2. 内置对象(Built-in Objects)
- 定义:内置对象是本地对象的一部分,提供了标准的功能和方法,通常用来处理特定的数据类型或提供通用的功能。
- 例子:
Math、JSON、Date、Promise等。 - 特点:内置对象提供了用于特定任务的功能,比如数学计算、日期处理等,通常用于增强语言的功能。
3. 宿主对象(Host Objects)
- 定义:宿主对象是由宿主环境(如浏览器或 Node.js)提供的对象,通常用于与环境相关的功能。
- 例子:在浏览器中,
window、document、XMLHttpRequest、console等;在 Node.js 中,fs、http等模块。 - 特点:宿主对象的实现和功能依赖于宿主环境,通常用于处理特定的环境交互。