刚刚在我最近看到的一个问题中遇到了以下问题,我很好奇为什么var name并const name提供不同的输出。运行下面的代码片段,看看我的意思。
如果有什么关系name作为一个window对象的属性,然后重新申报/定义 name与const应导致一个错误,我觉得。但是,在下面的示例中,const允许将 重新声明name为数组,而var不允许。
var name = ['one', 'two', 'three', 'four', 'five'];
for (var i=0; i < name.length; i++){
document.write(name[i] + '<br>');
}Run Code Online (Sandbox Code Playgroud)
const name = ['one', 'two', 'three', 'four', 'five'];
for (var i=0; i < name.length; i++){
document.write(name[i] + '<br>');
}Run Code Online (Sandbox Code Playgroud)
那么,为什么const允许我劫持该window.name属性并将其重新分配为数组?但var不允许重新分配(保持默认string …