JavaScript 中的作用域
2021/10/9 12:48:32
本文主要是介绍JavaScript 中的作用域,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
var one = true; function two(){ var three = true; function four(){/** */} if(true){ var five = true; function six(){} } console.log(five,six) } console.log(three) 复制代码
var one 作用域是全局作用域
function two 函数 two 的作用域也是全局作用域
var five 和 function six() 作用域和函数 function four 和 var three 一样都是函数
尝试去聊一聊 try catch
try { throw Error('error') } catch (error) { console.log(error) } 复制代码
但这个 error 标识符只在 catch 中可用
const tut = { title: 'machine learning' } with (tut) { console.log(title) } 复制代码
在 with 作用域内,可以查看对象 tut 的属性,无需 tut.title 直接就可以访问这个 title 变量,这个变量是存在于 with 作用域内的局部变量,外部无法访问。
var one = 1 function two(){} console.log(self.one); console.log(self.two) console.log(self) 复制代码
全局对象是 self,在一个文档(Document)中,全局对象是 window ,在 Node 中全局是 global。而新的部分是 globalThis,试图在所有这些地方实现标准化。
{ var one = 1; const one = 1; } 复制代码
可能因为 var one 突破包围其的花括号作用域,来到全局作用域,其实这样运行时是没有问题,不过解析时会报错,认为同一个作用域下声明了同名的变量。
<script> var one = 1 function two() { } </script> <script> </script> 复制代码
<script> var one = 1 function two() { } </script> <script> console.log(one);//1 console.log(self.one);//1 </script> 复制代码
<script> var one = 1 const two = 2 </script> <script> console.log(one);//1 console.log(self.one);//1 console.log(two);//2 </script> 复制代码
<script> var one = 1 const two = 2 </script> <script> console.log(one);//1 console.log(self.one);//1 console.log(two);//2 console.log(self.two)//undefined </script> 复制代码
在 script 间是共享全局对象的,。就ECMAScript而言,two 是一个全局。但是并不做将其挂到全局对象。因为从技术上讲,全局对象是在实际的全局上下文之下。好像是这样。这是我对V8 工程师 Yang 给出解释的理解。
<script type="module"> var one = 1 const two = 2 </script> <script type="module"> console.log(one);//1 console.log(self.one);//1 console.log(two);//2 console.log(self.two)//undefined </script> 复制代码
index.html:17 Uncaught ReferenceError: one is not defined 复制代码
如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star: http://github.crmeb.net/u/defu 不胜感激 !
这篇关于JavaScript 中的作用域的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10百万架构师第十三课:源码分析:Spring 源码分析:Spring核心IOC容器及依赖注入原理|JavaGuide
- 2025-01-10便捷好用的电商API工具合集
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀