peterS.: typsicher vergleichen

Beitrag lesen

gruss Alexander,

»»~~~Javascript if (null==Array.prototype.push) { /* code */ }
// ----^^^^^^

  
niemals nicht! das funktioniert nur, weil du die primitiven werte  
der typen [Null] und [Undefined] einem vergleich unterziehst, der  
nicht typsicher und damit unscharf ist, da typwandlung zugelassen  
wird.  
  
durch den vergleichsoperator »==« schluepfen ausserdem noch die  
werte [""], [0], [false]. vergleiche dieser art validieren in  
allen faellen zu [true], sobald die drei letztgenannten werte  
untereinander verglichen werden - und eben auch (null == undefined).  
  
dieses verhalten kann gewuenscht sein, meistens ist es aber eine  
fehlerquelle. fuer typsicheres vergleichen bediene man sich des  
opeartors »===«.  
  
wenn Du den wert [undefined] erfragen moechtest, mache gebrauch  
vom dafuer vorgesehenen operator »typeof«.  
  
  
  
so long - peterS. - pseliger@gmx.net  
  
  

-- 
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.  
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)  
  
[ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:\]](http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%28+fl%3A%29+br%3A%3E+va%3A%28+ls%3A%26+fo%3A%29+rl%3A%29+n3%3B%7D+n4%3A%7D+ss%3A%7D+de%3A%B5+js%3A%7D+mo%3A%3F+zu%3A%5D)