下面这个情况里X并未被赋值,为何会返回6?

function myFunction(a,b) {
    if (a>b) 
    {return; }
    x=a+b };
myFunction(2,1); 
console.log(x);//6

这是runoob Javascript函数页面讲return用法的例子,我想试一下符合if条件直接返回的情况下x的值会是什么情况,结果控制台返回了6。这是什么原理?

阅读 3.6k
7 个回答
VM148:6 Uncaught ReferenceError: x is not defined
    at <anonymous>:6:13

如果只有这一部分代码加全局变量x的话,怎么看x都不会是6啊,是不是你外面代码给x赋值了?可以在声明一个其它的变量试一下

感觉你之前使用varx赋值过。

试了undefined。你检查下代码,贴全

这个x是全局变量。你在别的地方设了x = 6;建议看书从头阅读。

你不是在控制台直接写的代码,然后以前的时候有一个x是6吧。。。

Uncaught ReferenceError: x is not defined at <anonymous>:6:13
代码中x未被定义,你可能是在其他地方定义了全局x=6了,所以才会出现你说的x打印出来是6

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题