※ ChatGPTを利用し、要約された質問です(原文:なぜbgColorは#dededeになってしまったのでしょうか?)
なぜbgColorは#dededeになってしまったのでしょうか?
このQ&Aのポイント
背景色が黒→白に変わるというスクリプトで、背景色が一定の値で固定されてしまう現象について質問しています。
スクリプト中にあるif文の条件式を削除した場合に、背景色が中途半端な#dededeという色で固定されてしまう問題が発生しました。
この現象の原因や解決策について、質問者が理解できないため、教授を求めています。
なぜbgColorは#dededeになってしまったのでしょうか?
背景色が黒→白に変わるというスクリプトを書いてみて、
実際の使用上はさほど問題ではないのですが、
引っかかる部分があるので質問させていただきました。
<html>
<head>
<script type="text/javascript">
<!--
i=0;
function FUNC(){
color=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];
document.bgColor="#"+color[i]+color[i]+color[i]+color[i]+color[i]+color[i];
i++;
status=document.bgColor+" "+color[i];
if(i>=color.length){return;}
setTimeout("FUNC()",50);
}
//-->
</script>
</head>
<body onload="FUNC()">
</body>
</html>
このスクリプトで、定義した配列数を超えると処理を中止させる
if(i>=color.length){return;}
を削除して実行すると、
color[15]を超えた時点、つまり背景色が終点の#ffffffから
さらに変わろうとした段階で未定義値のエラーが出るかと思いきや、
背景色が、中途半端な#dededeという色で固定されてしまいました。
配列でいうと
"#"+color[13]+color[14]+color[13]+color[14]+color[13]+color[14]
ですね。
なぜこのようになったのかさっぱり理解不能です。
どなたかご教授をお願いいたします<(_ _)>
お礼
bgColorはどんな値を入れてもスクリプトエラーにならないということで、 いろいろ値を代入して試してみた結果、 なぜ#dededeになったのかという仕組みが7割方理解できました。 残り3割は理解できそうにないので深追いは避けておきます! どうもありがとうございました<(_ _)>