12種類の使うべきでないJavascript文法--《Javascript言語の精粋》

3177 ワード

「Javascript言語の精粋」という本の付録はとても実用的で、12種類の使用を避けるべきJavascript文法を示しています.見てみます.
==
Javascript        ,   == !=,    === !==。         ,       ,         。
         
          ,     === !==。  ==         ,      。        ,             true  false:
  false == 'false'
  false == undefined
  false == null
  null == undefined
  0 == ''
    false,    true。
with
with          。  
  obj.a = obj.b;
  obj.c = obj.d;
     
  with(obj) {
    a = b;
    c = d;
  }
  ,      ,        obj.b obj.d    ,       ,       b d    。         ,         ,        with  。
エバー
eval           。            ,             ,          。
eval       ,       。  
  eval("myValue = myObject." + myKey + ";");
      
  myValue = myObject[myKey];
  ajax     json   ,              json_parse.js  。
contine
                ,             。         ,            ,        
スイッチスルー
switch    case  ,       ,    break,return throw。             ,  
  switch(n) {
    case 1:
    case 2:
      break;
  }
       ,      。      switch  ,   case   ,    break。
  switch(n) {
    case 1:
      break;
    case 2:
      break;
  }
単一行ブロック構造
if、while、do for,       ,           。  
  if (ok) t = true;
    
  if (ok)
    t = true;
         ,               。            ,        。
  if (ok){
    t = true;
  }
++と--
     ++      --,    C  ,             ,                   。              ,    。
ビット演算子
Javascript     Java     ,     &、   |、    ^、   ~、  <>  0     >>>。
           ,   Javascript    ,  Javascript  ,              。        ,Javascript            ,       ,        。  "      "& "      "&&,     。
function文
 Javascript       ,     :
  function foo() { }
 
  var foo = function () { }
        。        ,                    ,                  ,         ,         。
基本データタイプの包装対象
Javascript            、  、   ,           String、Number Boolean。  ,          :
  new String("Hello World");
  new Number(2000);
  new Boolean(false);
         ,      ,        。
  ,new Object new Array      ,   {} []  。
new文
Javascript               Lambda     ,      Lisp          。      ,90%                。      ,Javascript     ,       ,         。
       :
  var Cat = function (name) {
    this.name = name;
    this.saying = 'meow' ;
  }
  ,       
  var myCat = new Cat('mimi');
         、  new       ,      ,        。  ,     ,       new,        ,              。  ,          ,         。
Douglas Crockford       :
  Object.beget = function (o) {
    var F = function (o) {};
    F.prototype = o ;
    return new F;
  };
            ,         :
  var Cat = {
    name:'',
    saying:'meow'
  };
  var myCat = Object.beget(Cat);
     ,             :
  myCat.name = 'mimi';
void
       ,void      ,     。   Javascript ,void      ,       ,   undefined。
  void 0; // undefined
        ,       ,      。