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 にジャンプしません。

推薦する

SeataがMySQL 8バージョンを使用できない問題を解決する方法

考えられる理由: Seata が MySQL 8 をサポートしない主な理由は、接続ドライバーがバージ...

Vue プロジェクトでの支払い機能の実装 (WeChat 支払いと Alipay 支払い)

目次プロジェクトにおける一般的な支払い方法Alipay決済微信ペイプロジェクトにおける一般的な支払い...

mysqlreplicate を使って MySQL マスタースレーブを素早く構築する方法

導入mysql-utilities ツールセットは、DBA のツールボックスとも言えるさまざまなツー...

Docker での RocketMQ の詳細なインストールと使用

RocketMQ イメージを検索するには、Docker の hub.docker.com で検索する...

VUEはG2チャートを使用した実装を導入します

目次G2チャートについて使用テンプレートで使用される完全なコード (棒グラフ)世界地図を追加するG2...

HTML TextArea でのフォーマット保存の問題の解決方法

textarea の形式は保存時にデータベースに保存できますが、表示時には /n と相互に変換できな...

TypeScript の条件型に関する詳細な読書と実践記録

目次ジェネリック型での条件型の使用ツールタイプ脱出ポッド矢印関数で条件型を使用する型推論による条件型...

Navicat For MySQL の使い方に関する簡単なチュートリアル

推薦する: Navicat for MySQL 15 登録とアクティベーションの詳細なチュートリアル...

Dockerコンテナのログ処理の詳細な説明

Docker には多くのログ プラグインがあります。デフォルトでは json-file を使用します...

Dockerはクロスプラットフォーム機能を実現するためにnet5プログラムを導入

展開環境: ここでは docker コンテナ、Linux システム、VmWare 仮想マシンが使用さ...

JavaScript の基本変数

目次1. 変数の概要1.1 変数のメモリへの保存1.2 変数の使用1. 変数を宣言する2. 譲渡3....

mysql maxとwhere間の実行問題の概要

mysql maxとwhereの間の実行の問題SQLを実行します: テーブル「grades」を作成し...

ウェブページのフォント設定についての簡単な説明

サイト全体のフォントを設定することは、常にシンプルでありながら難しい作業です。深く掘り下げていくと、...

プロトタイプとプロトタイプチェーン プロトタイプとプロトタイプの詳細

目次1. プロトタイプ2. プロトタイプチェーン2.1 コンストラクタ2.2 電話をかける/申し込む...

Linux オペレーティング システムでよく使用される MySQL コマンドの概要

以下に、一般的な MySQL コマンドをいくつか示します。 -- データベース サービスを開始します...