据我了解,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/