在html里写:
<script>
console.log(typeof name);
</script>
然后在网页控制台打开为什么显示name是string类型呢?????
为什么不是 undefined ???
我明明没对name进行赋值啊
-----------------------------------------------------------------------------------------------------------------------------------平平无奇的分割线,接下来为你解答-------------------------------------------------------------------------------------------------------
众所周知:
console.log(typeof name);
//与下面一行代码本质相同
window.console.log(typeof name);
那么,是不是name在window里就已经被 '赋值' 了呢?
我们来console看一下 window 里有啥
console.log(window);
**!
window怎么单独设置了name的数据类型!
怪不得会输出string类型
竟然是你在偷偷捣鬼window(愤慨)!
-----------------------------------------------------------------------------------------------------------------------------------平平无奇的分割线,带你找回原本的name-----------------------------------------------------------------------------------------------
那么
我如果想找回真正的name,就得脱离window的 '环境'
唉唉唉~,等一下!
既然是<script>的代码
我单独写个js文件
所谓的'环境' 不就没有了?
let name;
console.log(name);
再用node打开
果然与预想的一样!
确实是undefined
name回来了!
-----------------------------------------------------------------------------------------------------------------------------------平平无奇的分割线,接下来给你总结-------------------------------------------------------------------------------------------------------
小结一下:
①规范变量名:别用name、let之类拥有特殊含义的字符来命名变量
②写代码不仅要考虑代码本身的特性,同时还要考虑到当前代码环境的特性