JavaScriptでいくつかの比較をしています。私は、このインスタンスでinput
が1に制限され、選択可能なオプションの数と<select multiple>
だった。しかし、それは変更せずに働いていたので、私は、何かを変更する必要があります期待1つの要素が要素と等しい配列ですか?
if (input.val() != input.data('original'))
//do stuff
:私はこのようないくつかのコードを上書きコピー。
私がチェックし、それはことが判明:私は比較は、配列をアンラップすることを期待していなかった
13 == [13] //true
13 === [13] //false
。
これは、私が使用して頼りにしているJavaScriptの意図された文書化された機能ですか?それとも、ブラウザの開発者の中には、これを動作させることにしたので、これは私にとってはうまくいくのですか?
'=='の仕様を参照してください。これは、あなたが常に '==='を使うべき多くの理由の一つです。 – SLaks
'+ [13]'の場合も 'parseInt(13,10)=== 13 'なので、その配列を数値に強制すると' 13'が返され、非厳密な型強制を比較すると – adeneo
@SLaksできませんでしたそれを見つけると、 '=='は最もgoogleableな文字列ではありません。私は、この動作を明示的にリソースを見つけることができませんでした。 –