雾观远山

博客园 首页 新随笔 联系 订阅 管理

 

 

 

                                            在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之类拥有特殊含义的字符来命名变量

                   ②写代码不仅要考虑代码本身的特性,同时还要考虑到当前代码环境的特性

 

 

posted on 2021-12-24 00:24  雾观远山  阅读(124)  评论(0)    收藏  举报