【问题标题】:Javascript: Expecting an Identifier and instead saw 'else'. Missing ";" before statementJavascript:期待一个标识符,而是看到“其他”。失踪 ”;”声明之前
【发布时间】:2013-10-01 17:04:02
【问题描述】:

我正在通过代码学院自学 javascript,并不断收到“意外的令牌”。我错过了什么:

function creditCheck(income) {
    var ans = 100; if(income>=100);     
    return("You earn a lot of money! You qualify for a credit card."); 
} 
else {     
    return("Alas you do not qualify for a credit card. Capitalism is cruel like that." ); 
} 

creditCheck(75);
信用检查(125);
信用检查(100);

【问题讨论】:

  • var ans = 100; if(income>=100); 从本行末尾删除 ; 并添加 {
  • return 语句后也需要相应的 }。

标签: javascript function if-statement


【解决方案1】:

JSLint 会抱怨给出的例子。它更喜欢:

function creditCheck(income) {
   var ans = 100; 
   if (income >= 100) {
       return("You earn a lot of money! You qualify for a credit card."); 
   } 
   return("Alas you do not qualify for a credit card. Capitalism is cruel like that."); 
}

我之所以提到这一点,是因为代码示例中的 else 如果只包含最终返回,则它是不必要的。

【讨论】:

    【解决方案2】:

    删除一个;并添加 {

    function creditCheck(income) 
    {
           var ans = 100; 
           if(income>=100)
           {
               return("You earn a lot of money! You qualify for a credit card."); 
           } 
           else
           {     
               return("Alas you do not qualify for a credit card. Capitalism is cruel like that."   ); 
           }
    }
    

    如果你不想放 { 你可以写..

    function creditCheck(income) 
    {
           var ans = 100; 
           if(income>=100)
               return("You earn a lot of money! You qualify for a credit card."); 
           else
               return("Alas you do not qualify for a credit card. Capitalism is cruel like that."   ); 
    }
    

    【讨论】:

      【解决方案3】:

      嗯,这就是你解决代码的方法:

      function creditCheck(income) {
          var ans = 100; 
          if(income>=100){     
              return("You earn a lot of money! You qualify for a credit card."); 
          }else {     
              return("Alas you do not qualify for a credit card. Capitalism is cruel like that." ); 
          }
      } 
      

      else 应该在 if 语句之后

      【讨论】:

      • 就是这样!谢谢!
      【解决方案4】:

      您的代码现在执行function creditcheck() { ...} else {...} 函数没有else{}。你在 if 上犯了一个小错误,这是正确的方法:

      function creditCheck(income) {
          var ans = 100;
          if(income>=100){
              return("You earn a lot of money! You qualify for a credit card."); 
          } 
          else {     
              return("Alas you do not qualify for a credit card. Capitalism is cruel like that." ); 
          } 
      }
      

      或者我会使用的方法:

      function creditCheck(income) {
          var ans = 100;
          var returnValue;
          if(income>=100){ returnValue = "You earn a lot of money! You qualify for a credit card."; } 
          else {           returnValue = "Alas you do not qualify for a credit card. Capitalism is cruel like that."; } 
      
          return returnValue; // Return it at the end. This way the action `return` only happends at the end
      }
      

      这更容易调试。如果要检查返回的是哪个值,只需在返回值上方添加 console.log(returnValue); 一行即可。

      【讨论】:

        【解决方案5】:

        确保每个左括号都有一个匹配的右括号很重要。

        您的代码:

        function creditCheck(income) {
            var ans = 100;
            if(income>=100);
            return("You earn a lot of money! You qualify for a credit card."); 
            } 
            else {     
                return("Alas you do not qualify for a credit card. Capitalism is cruel like that." ); 
        } 
        

        格式应为:

        function creditCheck(income)
        {
            var ans = 100;
            // I'm assuming that you mean to compare 'income' with 'ans'
            // Notice that I replaced ';' with an opening bracket here
            if(income>=ans) 
            {  
                return("You earn a lot of money! You qualify for a credit card."); 
            }
            else
            {     
                return("Alas you do not qualify for a credit card. Capitalism is cruel like that." );
            }
            // And here I've added a closing bracket
        }
        

        当您在由括号形成的条件块(例如if)中只有一个操作时,您实际上不需要开始和结束括号。见下文。

        // 
        function creditCheck(income)
        {
            var ans = 100;
            // See, no more brackets here
            if(income>=ans) 
                return("You earn a lot of money! You qualify for a credit card."); 
            else
                return("Alas you do not qualify for a credit card. Capitalism is cruel like that." );
        }
        

        【讨论】:

          猜你喜欢
          • 2012-06-05
          • 2016-12-31
          • 1970-01-01
          • 2019-05-07
          • 2018-10-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-07
          相关资源
          最近更新 更多