JavaScript の条件付きアクセス属性と矢印関数の紹介

JavaScript の条件付きアクセス属性と矢印関数の紹介

1. 条件付きアクセス属性

?. は ES2020 で導入された新機能です。条件付きプロパティ アクセス演算子です。 undefined変数のプロパティ値にアクセスするときに、. 演算子を使用すると、直接エラーが報告されます。条件付きプロパティ アクセス演算子を使用してアクセスすると、 undefinedが返されます。

例をご覧ください:

本を{価格:10,
            エディション:10,
            名前:"javascript"
}

console.log(ブックのページ番号)

直接エラー報告:

TypeError: 未定義のプロパティ 'num' を読み取ることができません

book.pageの値はundefinedundefined属性値がないため、エラーが報告されます。

値がundefinedかオブジェクトか不明な場合は、 if 文で判断するだけでなく、条件アクセス演算子を使って直接プロパティにアクセスすることもできます。アクセス先のオブジェクトがundefinedであっても、エラーは報告されません。代わりに、undefinedを返します

console.log(ブックのページ番号?.num)

出力:

未定義

2. アロー関数の紹介

アロー関数は、 ES6で登場した関数を定義するための省略形で、 => を使用してパラメータ リストと関数本体を区切ります。

例:

square = x=>x**2 とします。

コンソール.log(square(3))

出力:

9

この関数の定義は、従来の関数と同等です。

関数 square(x){
    x**2を返す
}

矢印関数は、名前のない関数を別の関数のパラメーターとして渡すためによく使用されます。

nums = [1,2,3,4].map(x=>x*2) とします。

console.log(数値)

出力:

[ 2, 4, 6, 8 ]

矢印関数を使用すると、コードがより簡潔になります。

従来のfunctionキーワードを使用して関数を定義すると、少し冗長に感じるでしょう。

数値 = [1,2,3,4].map(関数(x){戻り値 x*2})

console.log(数値)

矢印関数に複数のパラメータがある場合は、それらを括弧で囲む必要があります。

定数を追加すると (x,y) => x + y;

コンソールログ(追加(1,2))

矢印関数の本体に複数のステートメントがある場合は、本体を中括弧で囲み、 return キーワードを使用して値を返します。

const add = (x,y)=>{let tmp=x+y;return tmp};

コンソールログ(追加(1,2))

このとき、アロー関数の関数本体は、通常のfunction定義の関数本体の形式とまったく同じになります。そのため、矢印関数は、単純な 1 行のステートメントで簡潔かつ読みやすくなります。関数本体が複雑すぎる場合、矢印関数を使用して定義すると読みにくくなります。

これで、JavaScript の条件付きプロパティ アクセスと矢印関数に関するこの記事は終了です。JavaScript の条件付きプロパティ アクセスと矢印関数に関するより関連性の高い記事については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • より良い JavaScript 条件文と一致条件を書くためのヒント (要約)
  • JSの矢印関数におけるこのポイントの詳細な説明
  • JavaScriptのアロー関数の特徴と通常の関数との違い
  • JavaScript の矢印関数と通常の関数の違いの詳細な説明
  • JS 矢印関数に適さないシナリオは何ですか?
  • JavaScript で矢印関数を使用できないシナリオはどれですか

<<:  純粋なCSSでデジタルプラスとマイナスボタンを実装するための最適なソリューション

>>:  ボタンのタイプが送信として指定されていません。ボタンをクリックしても、指定された URL にジャンプしません。

推薦する

CentOS 7 でソースコードから Openssh をインストールする方法

環境: CentOS 7.1.1503 最小インストール依存パッケージをダウンロードします: yum...

JavaScript は大容量ファイルのアップロード処理を実装します

数十 MB 程度の小さいものから 1G 以上の大きいものまで、ビデオ ファイルなどのファイルのアップ...

CSSメディアクエリのアスペクト比を小さくする方法

CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...

ウェブページのテキストデザインは、服を着た賢い女の子のようであるべきだ

<br />「この世に醜い女性はいない、あるのは怠惰な女性だけだ」これは女性の美のバイブ...

HTMLページ埋め込み動画とJSコントロール切り替え動画例の詳しい説明

まず、ページにビデオを埋め込むための HTML コードは次のとおりです。コードをコピーコードは次のと...

MYSQL 5.6 スレーブレプリケーションの展開と監視

MYSQL 5.6 スレーブレプリケーションの展開と監視MYSQL 5.6 のインストールと展開 #...

iframe パラメータの説明と例

<iframe src=”test.jsp” width=”100″ height=”50″ ...

Linuxダイナミックリンクライブラリの使用

通常のプログラムと比較すると、ダイナミック リンク ライブラリにはメイン関数がなく、一連の関数の実装...

js で下線とキャメルケースの変換を実装する (複数の方法)

目次適用シナリオ:方法 1: 正規表現 (推奨)方法2: 配列のreduceメソッドを使用する方法3...

MySQL マスタースレーブレプリケーション切断の一般的な修復方法

目次01 問題の説明02 ソリューション1. 他のスレーブライブラリを見つけてすぐに置き換える2. ...

WindowsとLinux間でファイルを転送する方法

WindowsとLinux間のファイル転送(1)WinSCPを使用して、WindowsファイルをLi...

Vueは2つのルーティング許可制御メソッドを実装しています

目次方法 1: ルーティング メタ情報 (meta)方法 2: ルーティング テーブルを動的に生成す...

MySQL 5.7.18 のインストール中に MySQL サービスの起動に失敗する問題の解決策

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...

HTMLノードの追加と削除の簡単な例

<br />HTMLノードの追加と削除の簡単な例<input type="...