js の一般的でない演算子と演算子の概要

js の一般的でない演算子と演算子の概要

一般的な演算子と JavaScript の演算子の概要

カテゴリ

オペレーター

算術演算子+、–、*、/、%(剰余)
文字列演算子+ 文字列連結 += 文字列連結複合
ブール演算子! 、&&、||
単項演算子++、--、+(単項プラス)、-(単項マイナス)
関係比較演算子<、<=、>、>=、!=、==、===、!==
ビット演算子~ ビット単位の NOT & ビット単位の AND | ビット単位の OR ^ ビット単位の XOR <<左シフト >>符号付き右シフト >>>符号なし右シフト
代入演算子=、複合代入 (+=、-=、*=、%=)、複合ビット代入 (~=、&=、|=、^=、<<=、>>=、>>>=)
オブジェクト演算子.プロパティ アクセス、[] プロパティまたは配列アクセス、新しい呼び出しコンストラクタ共通オブジェクト、削除変数プロパティ削除、void (undefined を返す)、判定プロパティ、instanceof プロトタイプ判定
その他のオペレーター?: 条件演算子、カンマ演算子、() グループ化演算子、typeof 型演算子

js の珍しい演算子と演算子

Null 合体演算子: ??

左のオペランドが null または undefined の場合は右のオペランドを返し、それ以外の場合は左のオペランドを返します。

null ?? 'huli' // huli
未定義?? 'huli' // 未定義
'' ?? 'フリ' // ''
[] ?? 'フリ' // []
({}) ?? 'フリ' // {}
NaN ?? 'フリ' // NaN
false ?? 'huli' // false
0 ?? 'フリ' // 0

論理ヌル代入: ??=

論理 null 代入演算子 (x ??= y) は、x が null 値 (null または未定義) である場合にのみ x に値を割り当てます。

定数a = { 期間: 50 };

a.期間 ?? = 10;
console.log(a.duration);
// 期待される出力: 50

a.速度 ?? = 25;
console.log(a.speed);
// 期待される出力: 25

論理和: ||

存在が真実ならば、それは真実であり、前の

定数a = 3;
定数b = -2;
console.log(a > 0 || b > 0); // 真

誤った値になる可能性がある

ヌル
未定義
非N
"" そして''
0
間違い

論理和代入: ||=

はいの場合は戻り、いいえの場合は値を割り当てる

const a = { 期間: 50、タイトル: '' };

a.期間 || = 10;
console.log(a.duration);
// 期待される出力: 50

a.title ||= 'タイトルが空です。';
コンソールにログ出力します。
// 期待される出力: "タイトルが空です"

論理積: &&

両方が存在する場合は、後者のほうが真です。

定数a = 3;
定数b = -2;

コンソールにログ出力します。(a > 0 && b > 0);
// 期待される出力: false

論理 AND 割り当て: &&=

存在する場合は割り当てる

a = 1 とします。
b = 0 とします。

&&= 2;
コンソールにログ出力します。
// 期待される出力: 2

2 は 0 です。
コンソールログ(b);
// 期待される出力: 0

オプションの連鎖演算子: ?。

オプションの連鎖演算子 (?.) を使用すると、チェーン内の各参照が有効であることを明示的に検証することなく、接続されたオブジェクトのチェーンの奥深くにあるプロパティの値を読み取ることができます。 ?. 演算子は . 連鎖演算子と同様に機能しますが、参照が null の場合 (null または undefined) にエラーが発生する代わりに、式が短絡して undefined を返す点が異なります。関数呼び出しで使用する場合、指定された関数が存在しない場合は undefined が返されます。

const 冒険者 = {
  名前: 'アリス'、
  猫: {
    名前: 「ダイナ」
  }
};

定数 dogName = 冒険者.dog?.name;
console.log(犬の名前);
// 期待される出力: 未定義

console.log(冒険者.何らかの存在しないメソッド?.());
// 期待される出力: 未定義

要約する

js の珍しい演算子と演算子に関するこの記事はこれで終わりです。より関連性の高い js 演算子と演算子については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • これまでにないほど詳細に解説されたJavaScript演算子
  • 一般的でない js 演算演算子の概要
  • JavaScript の基本演算子
  • JS の効率的なマジック演算子の概要
  • JS のあらゆる場所で絶対等価演算子の使用をやめる
  • いつものJS演算子の説明を見てみましょう

<<:  Linux における効果的なユーザー グループと初期ユーザー グループの実装

>>:  Windows に異なる (2 つの) バージョンの MySQL データベースをインストールする詳細なチュートリアル

推薦する

nginx を https をサポートするように設定するためのサンプル コード

1. はじめにあなたのウェブサイトはまだインターネット上に公開されたままですか?ここでは、HTTPS...

CentOS 7.6 仮想ネットワーク カードのバッチ追加、変更、削除操作の紹介

1 カーネルにtunモジュールがあるかどうかを確認する modinfo tun modprobe t...

HTML 編集の基礎 (初心者必読)

DREAMWEAVER を開き、新しい HTML を作成します。 。ボディの特性: bgcolor...

Dockerでホストファイルをカスタマイズする方法について簡単に説明します

目次1. コマンド2. docker-compose.yml 3. Dockerファイル4. 直接変...

仮想マシンの複製に関するVirtual Boxチュートリアル図

VMに慣れた後、BOXに切り替えるのは少し異なります。たとえば、コピーネットワークカードを2枚使って...

VMware Tools を最初からインストールするための詳細な手順 (グラフィック チュートリアル)

VMware Tools は VMware 仮想マシンに付属するツールで、VirtualBox (...

MySQL がデフォルトの分離レベルとして繰り返し読み取りを選択する理由

目次Oracle 分離​​レベルMySQL 分離レベル要約する多くの読者は、MySQL のトランザク...

Apache ソースコードのインストールと仮想ホストの設定に関する詳細なチュートリアル

ソースからApacheをインストールする1. Apacheソースコードをアップロードして必要なソフト...

(MariaDB) MySQL のデータ型とストレージメカニズムの包括的な説明

1.1 データ型の概要データ型は、各フィールドに保存できるデータの種類、保存できるデータの量、保存で...

WEB 標準ウェブページ構造

背景画像でも、ページ上のテキストサイズでも、1 ピクセルの違いは非常に明白です。そして、私は学生時代...

Navicat を使用して csv ファイルを MySQL にインポートする

この記事では、参考までに、Navicatを使用してCSVファイルをMySQLにインポートするための具...

MySQL データベース インデックスが B+ ツリーの使用を選択するのはなぜですか?

MySQL データベース インデックスが B+ ツリーを使用する理由をさらに分析する前に、データ構...

Linux で MySQL 5.7.19 をアンインストールする方法

1. MySQLが以前にインストールされていたかどうかを確認するコマンド: rpm -qa|grep...

WeChatアプレットの世界的な状況の詳細な説明

序文WeChat アプレットでは、App.js の globalData を中間ブリッジとして使用し...

ReactのsetStateがマクロタスクなのかマイクロタスクなのかについて詳しく話しましょう

目次序文面接官は適切な質問をしていますか? § React は setState をどのように制御し...