发现了 var 和 let/const 的一个细微差别

查看 106|回复 8
作者:liberty1900   
大多数前端开发者都知道在浏览器里全局对象是 window,这点可以用 Object.is(globalThis, window) 来验证
如果在浏览器的全局环境下定义一个变量,那么它将被自动挂载到 window 对象上
var name = "Mike";
console.log(window.name)
但 let 和 const 却不会这样
  let age = 10;
  const sex = "Male";
  console.log(window.age, window.sex)

window, var, JavaScript, name

thinkershare   
不要用 var 这种垃圾。
hsfzxjy   
是这样的,而且不只这个差别
rrfeng   
var 就是全局变量,千万别用。
liberty1900
OP
  
用惯了了 VS Code ,里面 Cmd + Enter 是 Insert Line Below ,V 站这里直接给我发帖了。。。
Jirajine   
你不用管它有什么区别,你只需要记住 var 是 deprecated ,永远不要使用就行了。
liberty1900
OP
  
let/const 是 block scope 的,我以前理解所谓 block scope 就是用花括号形成的 scope 比如:
```javascript
{
let age = 10;
console.log(age); // 10
}
console.log(age) // undefined
```
如果我没有显示套上大括号,也就没有了 block scope 但是变量总得有个 scope ,那这个 scope 是不是 global scope 呢?看来我理解错了
HelloWorld556   


chengxy   
继续往下,学学 let 和 const 的区别
您需要登录后才可以回帖 登录 | 立即注册

返回顶部