【问题标题】:JS and Firefox scratchpadJS 和 Firefox 暂存器
【发布时间】:2018-01-17 00:43:15
【问题描述】:

我用MDN guide来学习JS,我用scratchpad来尝试一些例子。

如果我写

console.log('The value of b is ' + b);
var b;

为什么console.log 说“b 的值为-1”?!它应该是未定义的

【问题讨论】:

  • 您在哪个页面打开暂存器?很可能它确实定义了一个值为-1 的全局变量。请注意,当您取消 var b; 声明时,输出不会改变(或者会改变吗?)。
  • 你是对的,即使我删除了 var b;我用火狐打开它
  • 是的,Firefox,但你没有打开任何标签吗?也可以试试console.log(window) 告诉我们你得到了什么

标签: javascript scratchpad


【解决方案1】:

可能您之前使用值-1 定义了var b

如果你尝试上面的代码,你会看到,如果变量已经被实例化,并且如果你再次声明变量而不给它们设置任何值,那么它不会被实例化。

var b = -1;
console.log(b)
var b;
console.log(b)

【讨论】:

  • 你是对的,我同意你的观点,但我在代码中没有任何内容可以使 b = -1 !看图:ibb.co/jzkNwa
  • 您是否尝试关闭浏览器并再次打开?有时候,当你在控制台中测试东西时,即使你刷新浏览器,变量也会停留在内存中
  • 是的,结果相同 :(
  • 你确定这是在 html 中导入的唯一文件吗?
  • 我敢肯定 100% .. 页面上唯一的内容就是问题中提到的内容,而且这只发生在我尝试暂存器时,如果我将它写在 HTML 文件中并运行它,它就可以工作很好。
猜你喜欢
  • 2014-02-12
  • 2018-03-18
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
相关资源
最近更新 更多