带有const vs var的Javascript全局范围[重复]
Posted
技术标签:
【中文标题】带有const vs var的Javascript全局范围[重复]【英文标题】:Javascript global scope with const vs var [duplicate] 【发布时间】:2018-03-13 05:09:40 【问题描述】:var name = 'John';
console.log(this.name, document.name, window.name, name);
const meme = "Bruce";
console.log(this.meme, document.meme, window.meme, meme);
输出:
John undefined John John
undefined undefined undefined "Bruce"
var 和 const 的全局范围是否不同?我认为唯一的区别是 const 是不可变的。
【问题讨论】:
medium.com/javascript-scene/… + ***.com/a/40775470/2008111 一件小事:const 不是不可变的(例如你可以做array.push()),但它不可重写(你不能重新分配变量)const
不适用于旧版浏览器(例如 IE10),var
有效。
@caramba 那篇文章似乎与 OP 的问题没有任何关系
【参考方案1】:
是的,window
范围和使用 var
定义的变量不同于使用 const
和 let
声明的变量范围。
另见Is it possible to delete a variable declared using const?、Why does .then() chained to Promise.resolve() allow const declaration to be reassigned?
【讨论】:
以上是关于带有const vs var的Javascript全局范围[重复]的主要内容,如果未能解决你的问题,请参考以下文章
[基础]JavaScript中对var/let/const的理解和总结
为啥许多javascript示例仍然使用'var'而不是'const'和'let'? [关闭]
Javascript var/let/const 变量初始化