Loading ...
Sorry, an error occurred while loading the content.

Unexpected else after return

Expand Messages
  • Kirk Cerny
    Thanks for supporting JsLint. I really enjoy using it. Is this a new rule? I get this error now. Can someone please explain the reason behind the rule? Error:
    Message 1 of 9 , Feb 28, 2012
    • 0 Attachment
      Thanks for supporting JsLint. I really enjoy using it.

      Is this a new rule?
      I get this error now.
      Can someone please explain the reason behind the rule?

      Error:
      Problem at line 4 character 9: Unexpected 'else' after 'return'.

      return true;

      Code Example:

      var isOne = function (num) {
      'use strict';
      if (num === 1) {
      return true;
      } else {
      return false;
      }
      };
    • Doc Emmett Splendid
      Using multiple returns is equivalent to a goto. It s best to collect your tests and pass the result in a single return. ________________________________ From:
      Message 2 of 9 , Feb 28, 2012
      • 0 Attachment
        Using multiple returns is equivalent to a goto. It's best to collect your tests and pass the result in a single return.


        ________________________________
        From: Kirk Cerny <kirksemail@...>
        To: jslint_com@yahoogroups.com
        Sent: Tuesday, 28 February 2012, 10:30
        Subject: [jslint] Unexpected else after return


         
        Thanks for supporting JsLint. I really enjoy using it.

        Is this a new rule?
        I get this error now.
        Can someone please explain the reason behind the rule?

        Error:
        Problem at line 4 character 9: Unexpected 'else' after 'return'.

        return true;

        Code Example:

        var isOne = function (num) {
        'use strict';
        if (num === 1) {
        return true;
        } else {
        return false;
        }
        };



        [Non-text portions of this message have been removed]
      • douglascrockford
        ... Please see http://llvm.org/docs/CodingStandards.html#hl_else_after_return
        Message 3 of 9 , Feb 28, 2012
        • 0 Attachment
          --- In jslint_com@yahoogroups.com, Kirk Cerny <kirksemail@...> wrote:
          >
          > Thanks for supporting JsLint. I really enjoy using it.
          >
          > Is this a new rule?
          > I get this error now.
          > Can someone please explain the reason behind the rule?

          Please see http://llvm.org/docs/CodingStandards.html#hl_else_after_return
        • Mark Volkmann
          In case it s not obvious, you can just do this: return num === 1; ... R. Mark Volkmann Object Computing, Inc. On Feb 28, 2012, at 12:30 PM, Kirk Cerny
          Message 4 of 9 , Feb 28, 2012
          • 0 Attachment
            In case it's not obvious, you can just do this:

            return num === 1;

            ---
            R. Mark Volkmann
            Object Computing, Inc.

            On Feb 28, 2012, at 12:30 PM, Kirk Cerny <kirksemail@...> wrote:



            Thanks for supporting JsLint. I really enjoy using it.

            Is this a new rule?
            I get this error now.
            Can someone please explain the reason behind the rule?

            Error:
            Problem at line 4 character 9: Unexpected 'else' after 'return'.

            return true;

            Code Example:

            var isOne = function (num) {
            'use strict';
            if (num === 1) {
            return true;
            } else {
            return false;
            }
            };



            [Non-text portions of this message have been removed]
          • Erik Eckhardt
            Down with goto Naziism! I mean, seriously. Go to a particular end point buried in the middle of code? Yes, that should be verboten. But many, many
            Message 5 of 9 , Feb 28, 2012
            • 0 Attachment
              Down with "goto" Naziism!

              I mean, seriously. Go to a particular end point buried in the middle of
              code? Yes, that should be verboten.

              But many, many programmers prefer being able to *return* in some
              situations, when they see is a shorter, clearer, or cleaner.

              Why force declaring a separate variable to carry meaning forward to the
              end, if the code is so plain that all the branches from the if statement
              return? There is no reason, it isn't for clarity, it isn't for avoiding
              bugs, it's just for dictatorial adherence to an ill-thought absolute rule.

              Erik

              On Tue, Feb 28, 2012 at 10:47 AM, Doc Emmett Splendid <
              emmett.thesane@...> wrote:

              > **
              >
              >
              > Using multiple returns is equivalent to a goto. It's best to collect your
              > tests and pass the result in a single return.
              >
              > ________________________________
              > From: Kirk Cerny <kirksemail@...>
              > To: jslint_com@yahoogroups.com
              > Sent: Tuesday, 28 February 2012, 10:30
              > Subject: [jslint] Unexpected else after return
              >
              >
              >
              >
              > Thanks for supporting JsLint. I really enjoy using it.
              >
              > Is this a new rule?
              > I get this error now.
              > Can someone please explain the reason behind the rule?
              >
              > Error:
              > Problem at line 4 character 9: Unexpected 'else' after 'return'.
              >
              > return true;
              >
              > Code Example:
              >
              > var isOne = function (num) {
              > 'use strict';
              > if (num === 1) {
              > return true;
              > } else {
              > return false;
              > }
              > };
              >
              > [Non-text portions of this message have been removed]
              >
              >
              >


              [Non-text portions of this message have been removed]
            • spence.randall@ymail.com
              Just in case this was an overly simplified function to illustrate the error message, another solution would be to simply remove the unnecessary else : var
              Message 6 of 9 , Feb 28, 2012
              • 0 Attachment
                Just in case this was an overly simplified function to illustrate the error message, another solution would be to simply remove the unnecessary 'else':

                var isOne = function (num) {
                'use strict';
                if (num === 1) {
                return true;
                }
                return false;
                };

                But if it wasn't, Mark's solution is the superior one.

                -Randall

                --- In jslint_com@yahoogroups.com, Mark Volkmann <r.mark.volkmann@...> wrote:
                >
                > In case it's not obvious, you can just do this:
                >
                > return num === 1;
                >
                > ---
                > R. Mark Volkmann
                > Object Computing, Inc.
                >
                > On Feb 28, 2012, at 12:30 PM, Kirk Cerny <kirksemail@...> wrote:
                >
                >
                >
                > Thanks for supporting JsLint. I really enjoy using it.
                >
                > Is this a new rule?
                > I get this error now.
                > Can someone please explain the reason behind the rule?
                >
                > Error:
                > Problem at line 4 character 9: Unexpected 'else' after 'return'.
                >
                > return true;
                >
                > Code Example:
                >
                > var isOne = function (num) {
                > 'use strict';
                > if (num === 1) {
                > return true;
                > } else {
                > return false;
                > }
                > };
                >
                >
                >
                > [Non-text portions of this message have been removed]
                >
              • Erik Eckhardt
                Douglas, You may not wish to use llvm.org as a resource for coding standards, as the same page suggests the use of early
                Message 7 of 9 , Feb 28, 2012
                • 0 Attachment
                  Douglas,

                  You may not wish to use llvm.org as a resource for coding standards, as the
                  same page suggests the use of early
                  exits<http://llvm.org/docs/CodingStandards.html#hl_earlyexit>
                  .

                  For example, I know you do not like constructions like the following
                  (though I do):

                  for (var k in obj) {
                  ___if (!obj.hasOwnProperty) { break; }
                  ___//rest of long loop;
                  }

                  On Tue, Feb 28, 2012 at 11:14 AM, douglascrockford <douglas@...>wrote:

                  > **
                  >
                  >
                  > --- In jslint_com@yahoogroups.com, Kirk Cerny <kirksemail@...> wrote:
                  > >
                  > > Thanks for supporting JsLint. I really enjoy using it.
                  > >
                  > > Is this a new rule?
                  > > I get this error now.
                  > > Can someone please explain the reason behind the rule?
                  >
                  > Please see http://llvm.org/docs/CodingStandards.html#hl_else_after_return
                  >
                  >
                  >


                  [Non-text portions of this message have been removed]
                • douglascrockford
                  ... I adopted the ones that made sense.
                  Message 8 of 9 , Feb 28, 2012
                  • 0 Attachment
                    --- In jslint_com@yahoogroups.com, Erik Eckhardt <erik@...> wrote:

                    > You may not wish to use llvm.org as a resource for coding standards, as the
                    > same page suggests the use of early
                    > exits<http://llvm.org/docs/CodingStandards.html#hl_earlyexit>
                    > .

                    I adopted the ones that made sense.
                  • Martin Cooper
                    ... Where can we find that list? It s important that we can know the rules up front, and not discover them only when JSLint complains. -- Martin Cooper
                    Message 9 of 9 , Mar 3, 2012
                    • 0 Attachment
                      On Tue, Feb 28, 2012 at 6:15 PM, douglascrockford <douglas@...> wrote:
                      > --- In jslint_com@yahoogroups.com, Erik Eckhardt <erik@...> wrote:
                      >
                      >> You may not wish to use llvm.org as a resource for coding standards, as the
                      >> same page suggests the use of early
                      >> exits<http://llvm.org/docs/CodingStandards.html#hl_earlyexit>
                      >> .
                      >
                      > I adopted the ones that made sense.

                      Where can we find that list? It's important that we can know the rules
                      up front, and not discover them only when JSLint complains.

                      --
                      Martin Cooper


                      > ------------------------------------
                      >
                      > Yahoo! Groups Links
                      >
                      >
                      >
                    Your message has been successfully submitted and would be delivered to recipients shortly.