ITPub博客

首页 > IT职业 > IT职场 > js中申明变量需注意

js中申明变量需注意

IT职场 作者:wh7577 时间:2021-09-09 09:51:48 0 删除 编辑

申明:本文是js系列笔记之一,有不正确的地方请尽管指出,大家相互学习,共同进步;

js语言分严格模式strict与非严格模式,

问题产生:在非严格模式下, 如果某个变量被初始化,而没有事先声明;那么该变量会自动被添加到全局作用域中;看下边的现象:

图片描述


非常出乎意料的结果

再试试下边:

图片描述

和上边比较下,觉得有点意思了

想想为什么会这样:再试试下边

图片描述

举一隅不以三隅反?

看到这里相信大家都明白了,开始所述,必须有一个前提,那么就是方法被调用过,或者该变量被使用过,为什么会这样,我猜测大概是这样得方法在未被调用之时,只是声明了,方法内部,js线程是不去管的,只有在被调用时,线程执行到方法中,该变量被使用,才会被js添加到全局作用域中;

前边提到了,严格模式;上边所说的结果都是在非严格模式下才会出现的结果,在严格模式下,没有被申明的变量,突然冒出来,会直接暴出 未被定义的error;顺便说下,严格模式下,js不让使用with语句的,,这也证明了我在前边对with的理解,js本身都不建议使用with语句;

图片描述

js有太多的灵活性与不确定性,这也导致了其 缺陷;



作者:XBGG
链接:https://www.jianshu.com/p/a2e207060fd4


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2480/viewspace-2813610/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 缺少对象
请登录后发表评论 登录
全部评论

注册时间:2019-08-23

  • 博文量
    105
  • 访问量
    15386