嵌套条件语句有效,但组合条件语句无效';t-JavaScript
我有一段代码,我已经解决了一个问题,但我不知道为什么我的解决方案会起作用,我发现这几乎和有些东西不起作用一样令人沮丧 基本上,我有一个SVG视图框,我已经用JS为大屏幕调整了大小 此SVG viewbox仅位于我的网站的一个页面page1上 我有一个条件语句,其中如果第1页上的用户和窗口为1920px或更大,viewbox将调整大小 我用嵌套的if语句实现了这一点嵌套条件语句有效,但组合条件语句无效';t-JavaScript,javascript,conditional,Javascript,Conditional,我有一段代码,我已经解决了一个问题,但我不知道为什么我的解决方案会起作用,我发现这几乎和有些东西不起作用一样令人沮丧 基本上,我有一个SVG视图框,我已经用JS为大屏幕调整了大小 此SVG viewbox仅位于我的网站的一个页面page1上 我有一个条件语句,其中如果第1页上的用户和窗口为1920px或更大,viewbox将调整大小 我用嵌套的if语句实现了这一点 if (page1) { if (window.innerWidth > 1919) { // s
if (page1) {
if (window.innerWidth > 1919) {
// set SVG viewbox for screens larger than 1920px
} else {
// keep normal viewbox dimensions.
}
}
当我最初尝试这一点时,我把它当作一个if语句,有两个条件,虽然这在第1页起作用,但当我不在第1页时,它在控制台中抛出了一个错误
当存在一个组合条件时,为什么它会在不是page1
的页面上抛出错误,而当条件嵌套时则不会?我得到的错误基本上是说SVG元素不存在。我很困惑
if (page1 && window.innerWidth > 1919) {
// set SVG viewbox for screens larger than 1920px
} else {
// keep normal viewbox dimensions.
}
想想你的代码是什么意思:在第一个版本中,如果它是
page1
,那么你要么更改大小,要么保持默认大小。如果它不是page1
,您什么也不做
在第二种情况下,如果是page1
,并且窗口很大,则使用大viewbox。如果不是page1
或页面不够大,则使用默认大小
它们只是不一样。它们是不同的。第一种可能性是什么都不发生;在第二种情况下,总会发生一些事情。人们在没有正确阅读的情况下记下了问题。当我在站点的第2页(因此不是第1页)并且窗口小于1920时,代码仍然使用第2版代码执行,并在控制台中抛出错误,因为它找不到SVG(仅在第1页)。当然,这不应该发生,因为代码设置为仅当它是page1&&窗口大于1920时才触发?请清除。执行的是什么代码——哦,是的,我理解,只是我不知道为什么它会在不是page1的页面上抛出错误。我的意思是,如果我在第2页并且窗口小于1920,这两个条件都不会返回true,所以我认为代码不会执行。但它确实这样做了,并且抛出错误(因为SVG图形仅在第1页上)。这就是我困惑的地方。@TheChewy在
else
子句中的代码运行,如果您不在第1页,或者如果窗口小于1920px。只有&&
表达式中的一个条件必须为false,才能使整个表达式为false。