załącznik: Nietrafione cechy języka
==================
'' == '0'          // false
0 == ''            // true
0 == '0'           // true

false == 'false'   // false
false == '0'       // true

false == undefined // false
false == null      // false
null == undefined  // true

' \t\r\n ' == 0    // true
    
    
====================================
with (obj) {
    a = b;
}
    
    
====================================
if (obj.a === undefined) {
    a = obj.b === undefined ? b : obj.b;
} else {
    obj.a = obj.b === undefined ? b : obj.b;
}
    
    
====================================
a = b;
a = obj.b;
obj.a = b;
obj.a = obj.b;
    
    
====================================
eval("myValue = myObject." + myKey + ";");
    
    
====================================
myvalue = myObject[myKey];
    
    
====================================
if (ok)
    t = true;
    
    
====================================
if (ok)
    t = true;
    advance(  );
    
    
====================================
if (ok) {
    t = true;
    advance(  );
}
    
    
====================================
if (ok) {
    t = true;
}
advance(  );
    
    
====================================
for (p = src, q = dest; !*p; p++, q++) *q = *p;
    
    
====================================
&    and
|    or
^    xor
˜    not
>>   signed right shift
>>>  unsigned right shift
<<   left shift
    
    
====================================
function foo(  ) {}
    
    
====================================
var foo = function foo(  ) {};
    
    
====================================
(function () {
   var hidden_variable;

   // Ta funkcja może mieć mieć wpływ na otoczenie,
   // ale nie wprowadza żadnych nowych zmiennych globalnych.
})();
    
    
====================================
new Boolean(false)
    
    
==================