これが私のサンプルコードです - http://jsfiddle.net/JRqq3/。
0/1 の代わりに true/false を出力するのはなぜですか?
コード -
x = 1;
for(i = 0; i < 20; i++) {
x = !x;
$("body").append(x+"<br />");
}
これが私のサンプルコードです - http://jsfiddle.net/JRqq3/。
0/1 の代わりに true/false を出力するのはなぜですか?
コード -
x = 1;
for(i = 0; i < 20; i++) {
x = !x;
$("body").append(x+"<br />");
}
なぜなら !演算子は、ジョブを実行するときに値を bool に強制します。
なぜなら "!" 演算子は、変数の型を bool にキャストします。あなたはおそらくやりたい:
for (let i = 1; i <= 20; ++i) {
$("body").append( String(i % 2) + '<br />');
}
ここで何が起こっているのですか?%
モジュロ除算演算子です。「2 で割った余りを返すi % 2
」という意味です。i
i % 2
は常に 1 または 0 のいずれかです (2 で割った剰余は常に 0 または 1 です)。
評価x = !x;
することで、タイプを整数ではなくブール値に変更しているためです。
否定演算子のため! .
引数が true の場合は false を返し、その逆も同様です。
この場合、最初に 0 が false にキャストされ、1 が true にキャストされます。次に、これらの値は無効になります。