話さずにコードを見てください:
var i=arr.length ;
while(i--)
{
//何か書きますか?
}
上記は、
が改善を提案する Google array.js
プログラムのコードです 。 i が 0 のときに while ループが終了する理由を考えてください。
次のコードはこれと同等です:
var i=arr.length;
for(;i--;)
{
//i-- がセミコロン2つの間に書いてあるのですがおかしくないですか?奇妙ではありませんか?
}
ショックを受けましたか?感じていませんか?
うーん。通常、2 つのセミコロンの間には何を書きますか? 「常識」によれば、この i- は 2 番目のセミコロンの後にあるはずです。次に、C 言語コードを見てみましょう:
int main( )
{
int i = 5;
while(i--)
{
printf("%d ",
}
while(1) ;
return 0;
}
実行結果も JavaScript と驚くほど一致しています。
わかりました。理由がわからない?値 0 がブール値に変換されて false になることだけがわかります:
var i= !!0;
および他の値はブール値に変換されて true 。上記のプログラム コード例は、数値からブール値への明示的な変換です。
0 が暗黙的に false に変換される場合は、次の JS プログラムを使用してテストします。
var i=0;
if(i)
{
alert('if');
else{
alert( 'else');
}
alert('if プログラムと else プログラムが何であっても、ここに移動する必要があります');
if このサンプルコードは次のとおりです。まったく「実践的な」方法で書かれていませんか?さて、これは Tudou.com フロントエンド開発専門家からのコード サンプル スニペットです:
var obj = {status:0, msg:'xxxx'};
var data = 'xxxx' ||これは常に「隠されています」「はい!」
もう一度強調します。値 0 のブール値 false への暗黙の変換は、if()、while()、および for(;;) 条件式の 2 つのセミコロン間のブール決定によって決定されます。