Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么不';如果我分配一个变量';s值,该值尚未初始化为JavaScript中的另一个变量?_Javascript_Html_Undefined - Fatal编程技术网

为什么不';如果我分配一个变量';s值,该值尚未初始化为JavaScript中的另一个变量?

为什么不';如果我分配一个变量';s值,该值尚未初始化为JavaScript中的另一个变量?,javascript,html,undefined,Javascript,Html,Undefined,i) 这里的方块数是6。我只提供3种颜色。当for循环运行时,它会为前3个正方形指定背景色。 我想知道为什么它在为方块[3]分配颜色[3]时没有给出错误。当颜色[3]没有值时 )和它与java、C++等其他语言有什么不同? var squares=document.queryselectoral(“.squares”); var colors=[“rgb(146,162,109)”,“rgb(204,160,23)”,“rgb(9,106,144)”; var resetButton=docu

i) 这里的方块数是6。我只提供3种颜色。当for循环运行时,它会为前3个正方形指定背景色。 我想知道为什么它在为方块[3]分配颜色[3]时没有给出错误。当颜色[3]没有值时

<>)和它与java、C++等其他语言有什么不同?

var squares=document.queryselectoral(“.squares”);
var colors=[“rgb(146,162,109)”,“rgb(204,160,23)”,“rgb(9,106,144)”;
var resetButton=document.querySelector(“重置”);
resetButton.addEventListener(“单击”,函数(){
//改变正方形的颜色
对于(变量i=0;i
正文{
背景色:#232323;
}
.广场{
宽度:30%;
背景颜色:紫色;
垫底:30%;
浮动:左;
利润率:1.66%;
}
#容器{
最大宽度:600px;
保证金:0自动;
}

彩色游戏
变色
我想知道为什么它在为方块[3]分配颜色[3]时没有给出错误。当颜色[3]没有值时

颜色[3]
有一个值:


console.log([[3]) < P>是的,在这种情况下,JavaScript不同于java和C++语言。

在java或C++中,如果访问任何索引大于数组长度,则会得到索引外的异常。但在javascript中,您将得到未定义的

,未定义在javascript中被视为一种数据类型

例如:

const arr = [1];
console.log(arr[5]); //undefined
对象的情况也是如此,如果您试图访问对象的任何不存在的属性,它将为您提供未定义的属性。但是在java或C++中会出错。


在这里,您只是将undefined赋值给backgroundColor属性,这就是它没有抛出任何错误的原因。

如何添加实际解释或相关规范的引用或链接来真正解释行为(而不是只添加“it has a value”)?它确实给出了一个错误-事实上,有3个错误。如果您查看浏览器的控制台,您将看到三个条目:“预期颜色,但发现‘未定义’。分析‘背景颜色’值时出错。声明已删除。错误不会显示为弹出消息(除非您编写代码)。如果您有两个问题,请问两个问题。java和C++是两种完全不同的语言,请确保构造一个完全不同的语言。请注意,这三个词都很重要:它应该只是一个示例,您不应该发布整个实际代码,而应该创建一个简单的示例来演示您的问题。此外,它应该是最小的,也就是说,它不应该包含任何不是证明问题绝对需要的内容。没有办法用不到30行来说明你的问题吗?我很确定我可以用11个字符完成。javascript中不存在的任何对象都是“未定义的”,所以你可以使用颜色[1000],它仍然是未定义的。如果要检查这一点,可以将代码放在try/throw/catch/finally结构中,然后在try块中检查
colors[i]==undefined
并抛出一个自定义错误,并在catch块中处理该错误。尝试将颜色设置为
undefined
不会产生代码中断错误,因为它只是一个颜色样式不接受的值,因此会被忽略-css就是这样工作的。