JavaScript const 作用域和花括号

标签 javascript html

据我了解,const 的范围是花括号( block )。但是,当我在浏览器 (FF) 中运行以下代码时,它不会给出任何错误。下面的JS代码对吗?请解释。

 <script type="text/javascript">
 {
     const Foo = "foo";        
 }
 </script>
 <div></div>
 <script type="text/javascript">
 {
     Foo = null;
 }
 </script>

最佳答案

你不会得到错误,因为,

下面的代码表示您在此代码块内使用 Foo 的 const 变量,const Foo 将在代码块外访问 bot

 {
     const Foo = "foo";        
 }

下面的代码表示您正在为变量 Foo 赋值 null,它将绑定(bind)到 window 对象,

 {
    Foo = null;
 }

所以 Foo = null; 绑定(bind)到 window 对象,const Foo='foo' 是特定代码块的常量变量

因此,当您分配 Foo=null 时,它会将变量分配给 window 对象,您可以像这样访问它,

  window.Foo

即任何不带 var 声明的变量都将绑定(bind)到 window 对象,

关于JavaScript const 作用域和花括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49229901/

相关文章:

html - 将 div 与 "position: fixed"居中对齐

javascript - ASP.NET MVC - Razor 和 JavaScript

javascript - D3.Js 需要一个具有动态字符串路径的文件

javascript - IFrame 不适用于本地资源? HTML

html - 如何在 ul 列表上垂直对齐?

HTML 表单/文本区域与表情符号存储到 MySQL 数据库

html - 带有 `float:left` 的盒子正在下方而不是留在下一个可用位置

javascript - 在 Reactjs 中比较许多 prevProps 和 nextProps 的最佳方法是什么?

javascript - 使用 HTML5/Canvas/JavaScript 等复制 BBC iPlayer 旋转效果

javascript - 在 &lt;script&gt; 的源代码中使用//