嵌套条件语句有效,但组合条件语句无效';t-JavaScript

嵌套条件语句有效,但组合条件语句无效';t-JavaScript,javascript,conditional,Javascript,Conditional,我有一段代码,我已经解决了一个问题,但我不知道为什么我的解决方案会起作用,我发现这几乎和有些东西不起作用一样令人沮丧 基本上,我有一个SVG视图框,我已经用JS为大屏幕调整了大小 此SVG viewbox仅位于我的网站的一个页面page1上 我有一个条件语句,其中如果第1页上的用户和窗口为1920px或更大,viewbox将调整大小 我用嵌套的if语句实现了这一点 if (page1) { if (window.innerWidth > 1919) { // s

我有一段代码,我已经解决了一个问题,但我不知道为什么我的解决方案会起作用,我发现这几乎和有些东西不起作用一样令人沮丧

基本上,我有一个SVG视图框,我已经用JS为大屏幕调整了大小

此SVG viewbox仅位于我的网站的一个页面page1上

我有一个条件语句,其中如果第1页上的用户和窗口为1920px或更大,viewbox将调整大小

我用嵌套的if语句实现了这一点

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。