1
colors = new Array("red","orange","blue","purple","yellow","brown","green","grey")
var colorIndex = 0;
function changeColor(){
document.body.bgColor=colors[colorIndex]
colorIndex = (colorIndex+1)%8)
}
function startColorChange(){
setInterval("changeColor()",1000)
}
window.onload = startColorChange
console.log(colors.length);
1秒ごとに文書の背景色を変更するコードです。 変数colorIndexは毎回インクリメントし、異なる色を変更することによって出力を表示します。しかし、iscolorIndex =(colorIndex + 1)%8の質問。最初はその値が0であるので、赤色が表示されますが、次のラウンドではその値は0.125になります。オレンジの色がどのように表示されるかは、明らかに1ではなく0.125です。同様に、インデックスは0から1、 2,3,4,5 ...色がそれぞれどのように変化しているかを示します。javascriptは文書の背景色を繰り返し変更します
colorIndex = (colorIndex+1)%8)
// ^^^
下の提案は、よりきれいにコードを持って:あなたは最後parentesisを削除した場合
なぜ 'parseInt'?とにかく整数で作業しています。 –
['var colors = [" red "、" orange "、" blue "、" purple "、" yellow "、" brown "、" green "、" gray "]、 colorIndex = 0; のsetInterval(関数(){ document.body.bgColor =色[++のColorIndex%colors.lengthで]; }、1000); '](https://jsfiddle.net/tusharj/n400pfxh/1) – Tushar
'%'演算子が何であるか注意深く読んでみてくださいhttp://www.w3schools.com/js/js_arithmetic.aspそれは単純な除算ではありません – MysterX