ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 配列のループ_javascript スキルによって引き起こされる思考

JavaScript 配列のループ_javascript スキルによって引き起こされる思考

WBOY
WBOYオリジナル
2016-05-16 18:37:391111ブラウズ

話さずにコードを見てください:

コードをコピーします コードは次のとおりです:

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 つのセミコロン間のブール決定によって決定されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。