検索
ホームページウェブフロントエンドjsチュートリアルJavaScriptの演算子の種類と使用ルールを簡単に説明します。

JavaScriptには多くの演算子があり、主に算術演算子、同一演算子、比較演算子、文字列演算子、論理演算子、代入演算子などに分かれています。それぞれに独自の演算ルールがあります

JavaScript には多くの演算子があり、主に算術演算子、等価演算子、比較演算子、文字列演算子、論理演算子、代入演算子などに分類されます。これらの演算子には独自の演算ルールがいくつかあります。JavaScript の演算子を紹介します。

1. JavaScript 演算子の種類

1. 算術演算子: + 、 - 、 * 、 / 、 % 、 - (単項否定) 、 ++ 、 --

2. 同一および同一の演算子 :==、 ===、!==、!===

3. 比較演算子: 、=

4. 文字列演算子:
5. 論理演算子: &&, ||, !,

6. 代入演算子: =, +=, *=, -=, /=

2. JavaScript 演算子の規則

1. 算術演算子のルール

「+」: 「加算」および「接続」演算を実行できます。2 つの演算子の一方が文字列の場合、JavaScript はもう一方を文字列に変換し、2 つのオペランドを連結します。

「+」: オペランドがオブジェクトの場合、JavaScript はオブジェクトを加算用の数値または連結用の文字列に変換します。

「-」「*」「/」 2 つのオペランドのいずれかがそうでない場合。数値の場合は、数値に変換して数学的演算を実行します。

「/」 JavaScript では、すべての数値が浮動小数点数であるため、除算の結果はすべて浮動小数点数であり、0 で除算した結果はプラスまたはマイナスの無限大になります。0/0 は NaN になります。

"%" モジュロ演算子: 最初のオペランドから 2 番目のオペランドまでのモジュロを計算します。つまり、最初のオペランドを 2 番目のオペランドで除算したときの剰余が返されます。オペランドが数値以外の場合は、数値に変換されます。

「-」単項否定:オペランドが数値でない場合は、オペランドを数値に変換します。

「++」「--」 インクリメント演算子/デクリメント演算子の記号: オペランドは、変数、ツリー グループの要素、またはオブジェクトの属性である必要があります。オペランドが数値でない場合は、数値に変換されます。

注: 「++」がオペランドの前にある場合、最初にオペランドをインクリメントしてから、オペランドのインクリメント後の値を計算します。

オペランドの後に「--」がある場合は、オペランドがインクリメントされる前の値を計算してからオペランドをインクリメントします。

例: i = 1; //i に値 1 を代入します

j = ++i; //まず i を 2 に代入し、次に i の値を 2 に代入します。 j も 2 です。

i = 1; //i に値 1 を代入します

j = i++; //最初に i を j に代入し、次に i の値を 2 にインクリメントします。i の値は 2、j の値は 1 です。 。

デクリメント演算子「--」は「++」と同じです。

2. 等価演算子と同一演算子

(I) "==" "!==" 等価演算子と非等価演算子:

2 つのオペランドを比較し、非ブール値を返します。

数値、文字列、ブール値の比較はすべて定量的な値を使用します。 2 つの変数は、それらに格納されている値が等しい場合にのみ等しいと言えます。

オブジェクト、配列、関数を比較する場合、2 つの変数が同じオブジェクトを参照する場合にのみ参照が使用されます。 2 つの異なる配列は、要素がまったく同じであっても、まったく異なります。オブジェクト、配列、関数への参照を格納する変数の場合、それらが同じオブジェクト、配列、または関数を参照する場合にのみ等しくなります。

従うべき原則:

2 つのオペランドの型が異なる場合: それらを同じ型に変換します。

1) 数値と文字列 文字列が数値に変換された後、それを比較します。 。

2) trueは1に、falseは0に変換して比較します。

3) オブジェクト、配列、関数と数値または文字列、オブジェクト、配列、関数はプリミティブ型の値に変換されて比較されます。 (最初に valueOf を使用し、それが機能しない場合は toString を使用します)

4) 他の種類の組み合わせは等しくありません。

2つのオペランドの型が同じ、または同じ型に変換後の場合:

1) 2つの文字列: 同じ位置の文字が等しい場合、2つの文字列は同じです。

2)2つの数字:2つの数字が同じであれば、それらは同じです。一方が NaN の場合、または両方が NaN の場合は同じではありません。

3) 両方が真である場合、または両方が偽である場合、それは同じことを意味します。

4) 2 つの参照が同じオブジェクト、関数、または配列を参照している場合、それらは同じではありません。異なるオブジェクト、関数、または配列を参照している場合でも、それらは同じではありません。完全に元の値と同等に変換できます。

5) 2 つの null、または両方が未定義の場合、それらは等しい。

「!=」非等価演算子:等価演算子の検出結果が逆になります。

(II) "===" "!===" 同一演算子と非同一演算子記号:

同一演算子は等価演算子の比較規則に従いますが、2 つのオペランドの型が異なる場合は、2 つのオペランドの型が同じである場合にのみ false が返されます。等価演算はシンボルの比較規則に従って行われます。

「!==」非同一演算子は、同一演算子とは逆の結果になります。 2 つのオペランドの型または値が異なる場合は true を返します。

3. 比較演算子

これらの比較演算子は、異なる型の値を比較するために使用され、結果はブール値を返します。

「」「=」

ルールに注意してください: 比較のオペランドは任意の型にすることができますが、実行できるのは数値とオペランドに対してのみです。数値や文字列ではないオペランドは、数値または文字列に変換されます。

1) 両方のオペランドが数値であるか、両方とも数値に変換できる場合、比較は数値のサイズに基づいて行われます。

2) 両方のオペランドが文字列であるか、両方とも文字列に変換できる場合、比較は行われます。アルファベット順に行われます。

3) 文字列が数値に遭遇した場合、文字列は比較のために数値に変換されます。

4) オペランドを数値または文字列に変換できない場合、結果は false になります。

4. 文字列演算子

専用の文字列演算子はありませんが、一部の演算子は文字列オペランドに遭遇したときに異なる動作をします。

(I) "+" は 2 つの文字列を結合します。 「>」のような比較演算子は、比較によって 2 つの文字列の順序を確認します。文字の順序は、小さい文字が大きい文字の前に、大文字が小文字の前になります。

(III) "+" の関数は計算順序に依存します。

例: s = 1 + 2 + "var" then: 1+2 が最初に計算され、次に計算されるため、結果 3var が返されます。結果 3 は文字列に変換されます。「var」で接続します。

例: s = "var" + 1 + 2 の場合: var と 1 の間の接続が最初に計算され、次に結果 var1 が計算されます。を文字列に変換した2で繋ぎます。

5. 論理演算子

はブール演算を実行するために使用され、複雑な比較演算を表現するために比較演算子と一緒によく使用されます。

「&&」論理AND演算、「||」論理OR演算子、「!」論理NOT演算子

(I)「&&」両方のオペランドがブール値の場合、論理ANDが演算されます。両方のブール値が true の場合にのみ、結果として true を返し、それ以外の場合は false を返します。

注: 実際のパフォーマンス

「&&」は最初の式オペランドのブール値を検出します。最初のオペランド式が false を返す場合は、左側の最初のオペランド式の値を返します。それ以外の場合は検出を続けます。右側の 2 番目のオペランド式の値を返します

例: if (a = b) stop() と (a = b) && stop() ; このメソッドは同等です。演算子の右側のコードは実行されることが保証されていないため、廃止予定です。

例: if ((a
「&&」を変更します。これをブール代数演算子と考える方が簡単で安全です。

(II) "||" 両方のオペランドがブール値の場合、論理和はそれらに対して OR 演算を実行します。つまり、2 つのブール値のいずれかが true の場合、結果は true、それ以外の場合は false が返されます。 。

注: 実際のパフォーマンス

「||」は、最初の式オペランドのブール値を検出します。最初のオペランド式が true を返す場合は、左側の最初のオペランド式の値を返します。右側の 2 番目のオペランド式を検出し続け、2 番目のオペランド式の値を返します

演算子の右側のコードは実行されることが保証されていないため、このメソッドも非推奨です。一般に、 || の右側に他の関数 (代入、関数呼び出し、インクリメント、デクリメント) を含む式を使用することに反対します。

「||」をブール代数演算子とみなす方が簡単で安全です。

(III) 「!」論理否定はオペランドの前に置かれる単項演算子であり、その目的はオペランドを否定することです。

6. 代入演算子

(I) "= は代入演算子です。常に左側のオペランドが変数、配列の要素、またはオブジェクトの属性であることを期待します。 right オペランドを任意の型にします。

式内に複数の代入演算子がある場合、右から左への結合演算子から計算が開始されます。

注: 各代入式には値があり、これは演算子の右側の値です

(II) 左側の値を値に加算した後、演算

で代入演算を使用できます。右側の値、左側の値は割り当てられた値です。 "-=" "/=" "*=" メソッドは同じです。

7. その他の演算子

"?:" 条件演算子は、式 1 のブール値のみです。任意の型の値): 式 2 (任意の型の任意の値);

最初のオペランドのブール結果に基づいて、それが true の場合、2 番目のオペランドの式が実行され、2 番目のオペランドの値が返されます。 2 つのオペランド式。最初のオペランドのブール結果が false の場合、3 番目のオペランド式が実行され、3 番目のオペランド式の値が返されます。


3. JavaScript 演算子に関する注意事項
1. 演算子に渡されるデータ型と返されるデータ型に注意してください! 演算子によって、オペランド式によって計算される結果が特定のデータ型に準拠することが期待されます。

例: 文字列の乗算は実行できません。「a」 * "b" は不正ですが、可能な場合、JavaScript は式を正しい型に変換するため、式「 3」 * "5" は正当です。 JavaScript は文字列を数値に変換し、演算を実行します。結果は文字列「15」ではなく、数値 15 になります。

2. + はオペランドによって性能が異なります:

String + String = String (concatenated) "a" + "b" = "ab" "5" + "6" = "11"

String +数値 = (数値に変換された文字列) 文字列 (連結); "a" + 5 = "a5" 5 は文字列 "1" + 0 = "10" に変換されます

数値 + 数値 = 数値 (加算) 5 + 5 = 10.

3. 演算子の結合性に注意してください。左から右に結合する演算子もあれば、右から左に結合する演算子もあります。

例: w = a + b + c は w = (a + b) + c と同等です

w = ---b は w = - ( - ( -b ) ) と同等です。 = b = c は w= ( a = ( b = c )) と同等です

単項演算子、代入演算子、三項演算子の結合性は右から左です

ここで JavaScript 演算子を紹介します。皆様の日常生活のお役に立てれば幸いです。

以上がJavaScriptの演算子の種類と使用ルールを簡単に説明します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する方法(フロントエンド統合)Apr 11, 2025 am 08:22 AM

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScript:Web言語の汎用性の調査JavaScript:Web言語の汎用性の調査Apr 11, 2025 am 12:01 AM

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの進化:現在の傾向と将来の見通しJavaScriptの進化:現在の傾向と将来の見通しApr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

javascriptの分解:それが何をするのか、なぜそれが重要なのかjavascriptの分解:それが何をするのか、なぜそれが重要なのかApr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません