12種類の使うべきでないJavascript文法--《Javascript言語の精粋》
3177 ワード
「Javascript言語の精粋」という本の付録はとても実用的で、12種類の使用を避けるべきJavascript文法を示しています.見てみます.
==
==
Javascript , == !=, === !==。 , , 。
, === !==。 == , 。 , true false:
false == 'false'
false == undefined
false == null
null == undefined
0 == ''
false, true。
withwith 。
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
, , 。