簡體   English   中英

為什么/ * * /注釋的行為不同? Javascript錯誤?

[英]Why does /* */ comment behave differently ? Javascript bug?

這真的很奇怪。 為什么當fx1,fx2和fx3正確返回“ true”時,fx2返回“未定義”?

<script>

  function fx1(item) {
    return (item.a == 1)
        && (item.b == 1);
  }

  function fx2(item) {
    return /*(item.a == 1)
        && */(item.b == 1);
  }

  function fx3(item) {
    return true//(item.a= 1)
        && (item.b == 1);
  }

  function fx4(item) {
    return (item.b == 1);
  }

  alert(fx1({a: 1, b: 1}));
  alert(fx2({a: 1, b: 1}));
  alert(fx3({a: 1, b: 1}));
  alert(fx4({a: 1, b: 1}));

</script>

http://www.codetuning.net/temp/commentedwherejsbug.html上在線嘗試

當然,這是我原始代碼的簡化版本,僅重現了此單個問題。 最初我有fx1,然后我認為可能不需要拳頭條件(測試item.a),因此像fx2一樣將其注釋掉。 為什么這不起作用? fx3和fx4可以正常工作,它們都返回true,除了fx2返回未定義。

在IE11和Chrome 47上測試。

有人可以說服我這不是Javascript中的錯誤嗎?

function fx2(item) {
    return /*(item.a == 1)
        && */(item.b == 1);
  }

javascript會自動放一個; return后。 將所有return語句放在同一行。 喜歡

 return (item.a == 1) && (item.b == 1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM