Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 奇怪的行为_Javascript - Fatal编程技术网

Javascript 奇怪的行为

Javascript 奇怪的行为,javascript,Javascript,有人能帮我吗?为什么我们在JS代码段中有这种行为 var foo = function() { return { hi: console.log("foo") } } var foo1 = function() { return { hi: console.log("foo1") } } foo(); foo1(); 为什么只打印“foo” 编辑 这是因为自动插入分号,但是 我们有没有办法强迫JS不执行这种情况 我

有人能帮我吗?为什么我们在JS代码段中有这种行为

var foo = function() {
    return {
        hi: console.log("foo")
    }
}

var foo1 = function() {
    return 
    {
        hi: console.log("foo1")
    }
}

foo();
foo1();
为什么只打印“foo”

编辑 这是因为自动插入分号,但是

我们有没有办法强迫JS不执行这种情况

我的意思是,我们能做些什么,在这里抛出错误吗

EDIT2

看来最好的建议是JShint——我问你是否已经找到了JavaScript。您的第二个区块相当于:

var foo1 = function(){
  return;
  {
    hi:console.log("foo1")
  }
}

也就是说,它根本没有返回对象文本(因此,
console.log
没有运行)-它只是返回
undefined

在foo1中,函数在计算对象之前返回。如果您检查
foo1()
的输出,它将不返回任何内容,这就是为什么大多数javascript样式指南建议在与
return
关键字相同的行上打开对象。

只是一种预感,但这可能是一个计时问题吗?如果注释掉
foo()
,则打印
foo1
。我确实知道
console.log
日志记录过程中有一些奇怪的东西,如果这有意义的话。@ste2425现在说什么?你能为那句话/问题提供一把小提琴吗?@ste2425你已经移动了开头大括号,使其与
return
位于同一行。这并不令人尴尬,我从来没有注意到对不起,所以习惯于单击“整理”。@ste2425如果你解决了问题所涉及的确切问题,那么,是的。。。