[解決済み] JS/ES6。未定義の構造化
2022-05-07 16:38:12
質問
このような構造化をしています。
const { item } = content
console.log(item)
をどのように扱えばよいのでしょうか?
content === undefined
- というエラーが発生します。
古い」方法だと、次のようになります。
const item = content && content.item
そこで、もし
content
が未定義である場合 ->
item
も未定義になります。
デストラクチャリングを使って同じようなことができますか?
どのように解決するのですか?
を使用することができます。
ショートサーキット評価
を指定すると、デフォルトで
content
はファルシーな値で、通常は
undefined
または
null
この場合
const content = undefined
const { item } = content || {}
console.log(item) // undefined
より慣用的でない(
このコメントを見る
) の方法は、コンテンツをオブジェクトに広めてから再構築することです。
null
と
undefineds
の値は無視されます。
.
const content = undefined
const { item } = { ...content }
console.log(item) // undefined
関数のパラメータを再構築する場合、デフォルトの (
= {}
の例では)。
注
デフォルト値が適用されるのは、構造化解除パラメータが
undefined
ということは
null
の値ではエラーが発生します。
const getItem = ({ item } = {}) => item
console.log(getItem({ item: "thing" })) // "thing"
console.log(getItem()) // undefined
try {
getItem(null)
} catch(e) {
console.log(e.message) // Error - Cannot destructure property `item` of 'undefined' or 'null'.
}
また、デフォルト値を設定しても
item
プロパティを含まない場合は、そのプロパティを使用します。
const getItem = ({ item = "default" } = {}) => item
console.log(getItem({ item: "thing" })) // "thing"
console.log(getItem({ foo: "bar" })) // "default"
関連
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] 正規表現で変数を使うには?
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。
-
[解決済み] JavaScriptで空文字列/未定義文字列/null文字列をチェックするにはどうすればよいですか?
-
[解決済み] event.preventDefault() vs. return false
-
[解決済み] HTMLマークアップのどこに<script>タグを記述すればよいですか?
-
[解決済み] jQueryのdocument.createElementと同等?
-
[解決済み] ES6インポートで中括弧を使用するのはどのような場合ですか?
-
[解決済み】未定義のオブジェクトプロパティを検出する
-
[解決済み】Node.jsのrequireとES6のimport/exportを使い分ける。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Vueの要素ツリーコントロールに破線を追加する説明
-
JavaScriptの配列共通メソッド解説
-
vueが定義するプライベートフィルタと基本的な使い方
-
[解決済み] テスト
-
[解決済み】Node.js getaddrinfo ENOTFOUND
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】React-Redux: アクションはプレーンオブジェクトでなければならない。非同期アクションにはカスタムミドルウェアを使用する
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR