【问题标题】:Javascript if else compiler bug?Javascript if else 编译器错误?
【发布时间】:2016-09-05 10:03:22
【问题描述】:

这可能是一个带有 else if 的 javascript 编译器错误。

这里是代码;

"use strict"
var me ;
var a=1;
if (a==1)
{me ="hello"}
else if (a==2)
{me ="bye"}
else id (a==3) 
{me ="ups"}
console.log(me)

请注意,我有 'id' 而不是 'if' 。

你对“我”有一个最终的“上升”值.... 而且没有错误....

用 chrome 和 firefox 检查

发生了什么?

【问题讨论】:

  • id (…) 是一个函数调用。这是else 块的唯一内容。接下来是另一个带有多余{} 的块,它将始终被执行。
  • 而且由于永远不会到达 else 块,因此您也不会收到 "id is not defined" 错误。
  • @adeneo 。 De 'd' 字母非常接近 'f' 字母。恕我直言,编译器将不得不出现错误.....我没有 id 函数....
  • 如果未定义的函数调用从未发生,则没有错误。
  • @aprovent Yeeeees...?!问题是为什么这段代码的行为方式是这个错字

标签: javascript v8 spidermonkey


【解决方案1】:

您的代码相当于:

…
else {
  id(a == 3);
}

{
  me = "ups";
}

是的,即使没有任何if 语句等,您也可以使用{} 括号括起代码块,在这种情况下它根本不会做任何特别的事情。 me = "ups" 语句将始终被执行,因为它与 else 子句无关,id() 函数调用是与该块关联的唯一语句。

不,这不是编译器错误,这是你写的。

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 2014-08-10
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多