他の人のコードをデバッグすると、これが見つかりました。
はどのようif-in
に true と評価されますか? ただし、クロムでのみ発生し、IEはfalseと評価されます
他の人のコードをデバッグすると、これが見つかりました。
はどのようif-in
に true と評価されますか? ただし、クロムでのみ発生し、IEはfalseと評価されます
DOM要素がChrome上でプロパティを持っているtrue
ため評価します。これはFile APIの一部です。IE10でFile API を IE に追加しただけなので、IE 上にあります。IE9以前を使用しているに違いないと思います。fileInput
files
false
in
オブジェクトが指定された名前のプロパティを持っているかどうかを確認します。オブジェクト自体のプロパティか、プロトタイプ オブジェクトから継承したプロパティのいずれかです。
これはまっすぐな JavaScript の例です:
var obj = {foo: 42};
console.log('foo' in obj); // true
console.log('bar' in obj); // false
これは、特徴検出でよく使用されます。たとえば、ユーザーが使用しているブラウザーが要素のplaceholder
属性の使用をサポートしているかどうかを知りたい場合は、次のように、反映されたプロパティを探します。input
if ('placeholder' in document.createElement('input')) {
// It supports the placeholder attribute
}
in
演算子は、オブジェクト内のプロパティの存在をテストするために使用できます。
var obj = {
foo: 'baz'
};
console.log('foo' in obj); // true
詳細: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/in