JavaScript变量提升&函数提升

This commit is contained in:
李篡 2021-09-14 22:03:30 +08:00
parent 72507ed77e
commit d86bf6267c

View File

@ -21,7 +21,7 @@
成功采纳后,如果你面试遇到其他问题,笔者可以提供免费解答服务。 成功采纳后,如果你面试遇到其他问题,笔者可以提供免费解答服务。
### 变量提升&变量提升 ### 变量提升&函数提升
> 变量提升Hoisting被认为是 Javascript中执行上下文 (特别是创建和执行阶段)工作方式的一种认识。例如,从概念的字面意义上说,“变量提升”意味着变量和函数的声明会在物理层面移动到代码的最前面,但这么说并不准确。实际上变量和函数声明在代码里的位置是不会动的,而是在编译阶段被放入内存中。 > 变量提升Hoisting被认为是 Javascript中执行上下文 (特别是创建和执行阶段)工作方式的一种认识。例如,从概念的字面意义上说,“变量提升”意味着变量和函数的声明会在物理层面移动到代码的最前面,但这么说并不准确。实际上变量和函数声明在代码里的位置是不会动的,而是在编译阶段被放入内存中。
@ -53,6 +53,14 @@ var Gangster = "我是变量的值";
console.log(Gangster); // 我是变量的值 console.log(Gangster); // 我是变量的值
``` ```
`var` 声明变量时会将声明提升到函数或全局作用域的顶部。但是 `let` 或者 `const`,会将声明放进 TemporalDeadZone简称 TDZ(暂时性死区)只有JavaScript执行到当前变量声明这句语句时才能使用这个变量。
```js
console.log(yck) // undefined
var yck='大佬';
console.log(typeof yck) //ReferenceError
let yck='大佬';
```
- [ ] 文档 - [ ] 文档
- [ ] [JS 变量提升](https://developer.mozilla.org/zh-CN/docs/Glossary/Hoisting) - [ ] [JS 变量提升](https://developer.mozilla.org/zh-CN/docs/Glossary/Hoisting)
- [ ] 推荐文章 - [ ] 推荐文章