コンソールに「割り当ての左辺が無効です」というエラーが表示されます。ここに構文がありませんか?
if ($images[next] && images[next].loaded = false){
//stuff
}
各条件はそれ自体で通過しますが、組み合わせると失敗します。
コンソールに「割り当ての左辺が無効です」というエラーが表示されます。ここに構文がありませんか?
if ($images[next] && images[next].loaded = false){
//stuff
}
各条件はそれ自体で通過しますが、組み合わせると失敗します。
誰もがすでに言ったように、比較のために==(または) を使用する必要があります。===エラーの原因は、他の比較演算子とは異なり、代入演算子の優先順位がブール演算子よりも=低いことです。したがって、式は次のように評価されました。&&==
($images[next] && images[next].loaded) = false
括弧内の左側の部分は、 または のいずれtrueかになりますfalse。だからそれはどちらかになります
true = false
また
false = false
ブール値には何も割り当てることができないため (変数またはオブジェクト プロパティにのみ)、どちらも許可されません。したがって、無効な左側の代入エラーがスローされます。
適切な比較演算子を使用すると、優先順位規則により、次のように評価されます。
$images[next] && (images[next].loaded == false)
それはtrue && true, or true && false, or false && false, orfalse && trueになり、最終的にはtrueorfalseになります。これは、if ステートメントが期待するものです。
比較には double equals を使用します。または、次のように書くこともできます。
var item = $images[next];
if (item && !item.loaded){
}
そのはず
if ($images[next] && $images[next].loaded == false){
//stuff
}
オア・ベター
var images = $images[next];
if (images && images .loaded === false){
//stuff
}
単一の=手段を使用すると、変数に値を割り当てます。比較には、厳密な等価性のために==orを使用します。===
たぶん、同等性チェックの「=」の代わりに「==」が役立つでしょう
if ($images[next] && images[next].loaded == false)
{
//stuff
}
javascript比較演算子のリストについては、こちらをご覧ください
誰もが同じことを言うでしょう:... .loaded = falseあるべきです... .loaded == false。=代入演算子、==比較演算子です。
if (x = someFunction())someFunction() が false を返さないか、エラーをスローしない限り、どちらがコードブロックを実行するかがわかる場合があります(あなたの場合のように)。
ご不明な点がございましたら、お気軽にお問い合わせください:)
https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Expressions_and_Operators