[解決済み】JavaScriptのisset()に相当するもの
質問
PHPでは、次のようなことができます。
if(isset($array['foo'])) { ... }
. JavaScript では、しばしば
if(array.foo) { ... }
を使えば同じことができますが、これは全く同じ文ではありません。この条件も
array.foo
は存在するが
false
または
0
(おそらく他の値も)。
PHPの
isset
をJavaScriptで作成することはできますか?
広い意味で、存在しない変数や値のない変数など、JavaScriptの扱いに関する一般的で完全なガイドがあれば便利だと思います。
解決するには?
私は一般的に
typeof
演算子を使用します。
if (typeof obj.foo !== 'undefined') {
// your code here
}
を返すことになります。
"undefined"
そのプロパティが存在しないか、その値が
undefined
.
<サブ
(参照)。
との違い
undefined
と定義されていない。
)
オブジェクトにプロパティが存在するかどうかを確認する方法は他にもあり、例えば
hasOwnProperty
メソッドを使用します。
if (obj.hasOwnProperty('foo')) {
// your code here
}
そして
in
演算子を使用します。
if ('foo' in obj) {
// your code here
}
最後の2つの違いは
hasOwnProperty
メソッドはプロパティが存在するかどうかをチェックします。
物理的に
をオブジェクトに追加します (プロパティは継承されません)。
は
in
演算子は、プロトタイプチェーンで到達可能なすべてのプロパティをチェックします。
var obj = { foo: 'bar'};
obj.hasOwnProperty('foo'); // true
obj.hasOwnProperty('toString'); // false
'toString' in obj; // true
ご覧の通りです。
hasOwnProperty
は以下を返します。
false
と
in
演算子は
true
をチェックするときに
toString
メソッドの場合、このメソッドはプロトタイプチェーンの上位で定義されます。
obj
を継承しています。
Object.prototype
.
関連
-
[解決済み】JavaScript "Uncaught TypeError: object is not a function" 連想性の質問
-
[解決済み】'useState' が定義されていない no-undef React
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] printf/String.Formatに相当するJavaScriptの機能
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Failed to load resource: net::ERR_FILE_NOT_FOUND loading json.js
-
[解決済み] React with ES7: Uncaught TypeError: Cannot read property 'state' of undefined [duplicate] (未定義のプロパティ'state'を読み込むことはできません。
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】npm install --legacy-peer-deps は具体的に何をするのですか?どんなときに推奨されるのか/どんな使用例が考えられるのか?
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】javascript/jQueryでphpのissetのようなものはありますか?[重複している]をクリックします。
-
[解決済み】ネストされたJavaScriptオブジェクトのキーが存在するかどうかをテストする