• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.

isError = isError || false;

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    isError = isError || false;

    Found the above in a line of javascript which I am not that great on.

    Is there any reason to do this? Am I missing something? Some js trick?

    Or can we just put this down to offshore devs?

    #2
    Originally posted by minestrone View Post
    Found the above in a line of javascript which I am not that great on.

    Is there any reason to do this? Am I missing something? Some js trick?

    Or can we just put this down to offshore devs?
    It means - if isError exists then keep it the same, otherwise set it to false.

    You see it a lot when you don't know if a variable or object has been created yet but you need it to exist so you might use:

    var CUK = CUK || {};

    So now you know that CUK definitely exists.
    Last edited by Bunk; 13 March 2013, 10:47.

    Comment


      #3
      Ah, cheers, see it now.

      Christ, can they not just have types like normal languages.

      Comment


        #4
        Originally posted by Bunk View Post
        It means - if isError exists then keep it the same, otherwise set it to false.
        Does that not only work if isError is a boolean? I.e. the || operator is a boolean operator, it can only be true or false, and I'll take your word for it that undefined || false == false. But it wouldn't work if isError was 5.7.

        I would have done isError == undefined ? false : isError;

        Which says what it means, rather than some wierd script kiddyish hackery.
        Will work inside IR35. Or for food.

        Comment


          #5
          Originally posted by VectraMan View Post
          Does that not only work if isError is a boolean? I.e. the || operator is a boolean operator, it can only be true or false, and I'll take your word for it that undefined || false == false. But it wouldn't work if isError was 5.7.

          I would have done isError == undefined ? false : isError;

          Which says what it means, rather than some wierd script kiddyish hackery.
          In Javascript you have something called truthiness and falsieness. It means that non-boolean variables can be either truthy or falsy which means they evaluate to true or false when used in a boolean situation.

          eg. Off the top of my head, the following are falsy:

          false
          0
          null
          undefined
          empty string

          Everything else is truthy. So you could use:

          if(response) {
          do stuff
          }

          and assuming response is not a falsy value it should 'do stuff'.

          It's an odd language but it makes sense once you get used to it.

          Sort of

          Comment


            #6
            if (truthiness)
            {
            doUpdation();
            }

            Comment


              #7
              Originally posted by mudskipper View Post
              if (truthiness)
              {
              doUpdation();
              }


              truthiness && doUpdation();

              Who needs readability?

              Comment


                #8
                Yes, but really you'd want

                while(truthiness)
                {
                doUpdation();
                }

                // falsiness now applies

                Crazy language. I never thought initialising variables before you used them was much of a problem.
                Will work inside IR35. Or for food.

                Comment


                  #9
                  I seem to always get dumped on javascript as has happened to me again. I don't even bother telling PMs that java and javascript are different now

                  Anyway, I just can't get my head around the stuff. Just seems to be layers of hacks to do stuff that can usually be done quite simply server side.

                  I agree that jquery/ajax stuff can be useful at times there just seems to be too much of it very badly written.

                  Comment


                    #10
                    If you think JS and the browser DOM can be a pain now, just have a look at these JavaScript FAQs from 1996 - and that's when we only had one browser (Netscape Navigator 2) to worry about!

                    Comment

                    Working...
                    X