<br><br><div class="gmail_quote">On Sun, Jan 1, 2012 at 5:12 AM, David Bruant <span dir="ltr"><<a href="mailto:bruant.d@gmail.com">bruant.d@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    Le 01/01/2012 06:12, John J Barton a écrit :
    <blockquote type="cite"><div class="im">On Sat, Dec 31, 2011 at 7:53 PM, Axel Rauschmayer <span dir="ltr"><<a href="mailto:axel@rauschma.de" target="_blank">axel@rauschma.de</a>></span>
      wrote:<br>
      </div><div class="im"><div class="gmail_quote">
        <div> </div>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div style="word-wrap:break-word">
            <div>
              <div><br>
              </div>
              <div>1. Checking whether a variable has been declared.</div>
              <div>    Problematic: verbose and conflated with checking
                for a declared variable having the value `undefined`.</div>
              <div>    Better: a dedicated operator or predicate for
                performing this check.</div>
            </div>
          </div>
        </blockquote>
        <div><br>
        </div>
        <div>Sorry, I don't think anyone checks if a is variable
          declared. You just look at the source code.<br>
        </div>
      </div>
    </div></blockquote>
    I have read code where people checked variable existence in global
    code. Typeof prevents a ReferenceError if the variable is not
    declared.<br>
    Having been used to do it in global code (where you can't always
    "read the code"), or just reading it somewhere, people reproduce
    within a function.<br></div></blockquote><div><br></div><div><br class="Apple-interchange-newline">Maybe I am confused. Here is what I was imagining:</div><div>  var w = 1;  // w is declared and defined. typeof gives 'number'</div>
<div>  var x;  // x is declared, but is undefined. typeof gives 'undefined'</div><div>  y = 4; // y is not declared, is a global.    typeof gives 'number'</div><div>           // z is not declared                     typeof gives 'undefined.</div>
<div><br></div><div>So how can I check to see that y and z are not declared?  </div><div><br></div><div>In:</div><div>  var b;</div><div>  if (typeof x !== 'undefined') b = x</div><div><br></div><div>I don't get a ReferenceError. What I am I missing?<br>
</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div text="#000000" bgcolor="#FFFFFF">
    <br>
    I agree that there are a lot of bad practices in here, but some
    people do do it.<br>
    Moreover, the concept of static scoping and "just look at the code
    to see if a variable is declared" is not that obvious for newcomers
    to the language or newcomers to programming.</div></blockquote><div><br></div><div>I guess newcomers won't understand typeof either ;-).</div><div><br></div><div>jjb</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"><span class="HOEnZb"><font color="#888888"><br>
    <br>
    David<br>
  </font></span></div>

</blockquote></div><br>