JavaScript Diary

0 と 1 [ 2001/06/01 ]
いきなりですが、以下のプログラムを見て下さい。
var x = 0 ;

while(1){
    if(x++ > 10) break;
}
このプログラムは while 文の条件式に 1 が指定されていますが、これは無限ループの意です。 当初、1 があるのなら、2 もあるのか?その場合どんなループなんだ? などと疑問に思ったものですが、何のこたない。1 が真偽値に変換され true に変わっているだけなんですね。
JavaScript は型のない言語ですが、他言語でいうキャストがいたるところで行われています。 数字に関していうと 0 は false にキャストされ、他の数字は全て true になります。

余談になりますが、0 と 1 を交互に入れ換えたい場合、次のようにすると良いです。
var n = 1;

n ^= 1; // n は 0
n ^= 1; // n は 1
また、奇数と偶数を判別したい場合。
var n0 = 120;  // 偶数
status = n0&1; // 結果は 0

var n1 = 255;  // 奇数
status = n1&1; // 結果は 1
とかいう方法も使用できます。n%2 などとするよりもスピードが速いです。