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 データベースをインストールする詳細なチュートリアル

推薦する

Vueを使用して手書き署名機能を実装する

個人的な実装のスクリーンショット:インストール: npm インストール vue-esign --sa...

Html+CSS フローティング広告ストリップの実装

1.html部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> ...

MySQL 8.0.24 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.24のインストールチュートリアルを参考までに紹介します。具体的な内...

ブラウザ間の hr 区切り文字の違い

Webページを作るときに、区切り線hrを使うことがありますが、IE6やIE7で表示するのは非常に苦痛...

スパンの最小高さを定義するソリューションは効果がありません

span タグは HTML ウェブページを作成するときによく使用されますが、このタグの使い方がよくわ...

ChromeとIEに対応したWMPに埋め込まれたHTMLの詳細な紹介

実際には、対応する記述方法は多数ありますが、最も一般的なのは object + embedded で...

MySQL InnoDBセカンダリインデックスのソート例の詳細な説明

ソート問題最近、Geek Time の「45 Lectures on MySQL Practice」...

MySQL が UNION を使用して 2 つのクエリを接続できない理由の詳細な説明

概要連合接続データセットキーワードは、2つのクエリ結果セットを1つに連結し、同一のレコードを除外する...

Web ページ制作におけるテーブル属性 CellPad、CellSpace、Border の説明と使用

cellspacing は表内のセル間の距離です。セルパディングは、表のセル内の空白スペースです。一...

MySQL レプリケーションの原理と実際のアプリケーションの詳細な説明

この記事では、例を使用して、MySQL レプリケーションの原理と実際のアプリケーションについて説明し...

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

Centos7でのパーティションのフォーマットとマウントの実装

Linux では、ハードディスクの追加やパーティションの再マウントといった状況に頻繁に遭遇します。こ...

インデックスとテーブルリターンをカバーするMySQLの使い方

インデックスの2つの主要なカテゴリ使用されるストレージエンジン: MySQL 5.7 InnoDBク...

nginx アンチホットリンクおよびアンチクローラー設定の詳細な説明

新しい設定ファイルを作成します (たとえば、nginx インストール ディレクトリの下の conf ...

Docker+nacos+seata1.3.0 のインストールと使用設定チュートリアル

これに先立ち、1日かけてやってみました。Seataは使い方が簡単で超シンプルですが、インストールや設...