ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript のさまざまな演算子の概要

JavaScript のさまざまな演算子の概要

怪我咯
怪我咯オリジナル
2017-07-04 15:23:251255ブラウズ

ここで説明する演算子には、算術演算子と、ブール値や代入などの論理演算子が含まれます。JavaScriptでのさまざまな演算子の使用方法をまとめましたので、必要な方は参考にしてください

単項演算子
1 つの値のみを操作できる演算子は、単項演算子と呼ばれます。
単項演算子は ECMAScript の最も単純な演算子です。

1. インクリメント演算子とデクリメント演算子
インクリメント演算子とデクリメント演算子は C から直接借用したもので、それぞれに前置付きタイプと後置付きタイプの 2 つのバージョンがあります。 Gu Mingsiyi さん、前置型は演算対象の変数の前に配置し、後置型は演算対象の変数の後に配置する必要があります。
Pre-type:

var num1 = 1;
var num2 = 2;
var num3 = ++num1 + num2;//4

Post-type:

var num1 = 1;
var num2 = 2;
var num3 = num1++ + num2;//3

上記 2 つのコードの結果は異なります。その理由は、事後インクリメントとデクリメントと事前インクリメントとデクリメントの間には非常に重要な違いがあるためです。 、ポストインクリメント デクリメント操作は、それを含むステートメントが評価された後に実行されます。

適用範囲:
前置インクリメントとデクリメント、後置インクリメントとデクリメント これら 4 つの演算子はすべて、任意の値に適用できます。別の値に適用すると、この演算子は Number() 変換関数と同様に値を変換し、変換後に 1 を加算または減算します。

2. 単項加算および減算演算子
単項加算および減算演算子は主に基本的な算術演算に使用され、データ型の変換にも使用できます(この演算子は Number() 変換関数と同様に変換します)変換する値)。

ブール演算子
ブール演算子には、NOT、AND、または OR の 3 つがあります。

1. 論理 NOT
論理 NOT 演算子は感嘆符 (!) で表され、ECMAScript の任意の値に適用できます。値のデータ型に関係なく、この演算子はブール値を返します。

2 つの論理 NOT 演算子を同時に使用すると、Boolean() 変換関数の動作が実際にシミュレートされます

2. 論理 AND
論理 AND 演算子は 2 つのアンパサンド (&&) で表され、2 つの演算番号と 2 つを持ちます。任意のタイプのオペランドに適用できます。論理 AND は短絡演算です。つまり、最初のオペランドが false と評価された場合、2 番目のオペランドは評価されません。
両方の値が true の場合、結果は true になります。 2 つの値が 1 つが true、もう 1 つが false の場合、結果は false になります。両方の値が false の場合、false が返されます。
いずれかの値がブール値ではない場合: 次の規則に従います

最初のオペランドが false の場合は、最初のオペランドを返します。

最初のオペランドが true の場合は、2 番目のオペランドを返します。
最初のオペランドがオブジェクトの場合、2 番目のオペランドが返されます

var a = {b:1};
a && 'ss'//"ss"

2 番目のオペランドがオブジェクトの場合、最初のオペランドが true と評価された場合にのみ返されます Object

'ss' && a//Object {b: 1}

両方のオペランドがオブジェクトの場合、2 番目のオペランドを返しますoperand

var c = {d:2};
c && a//Object {b: 1}

(1) 1 つのオペランドが null の場合は null
(2) 1 つのオペランドが NaN の場合は NaN
(3) オペランドの 1 つが未定義の場合は、unknown

3 を返します。は論理 AND 演算子に似ており、論理 OR 演算子も短絡演算子です。つまり、最初のオペランドが true と評価される場合、2 番目のオペランドは評価されません。
(1) 最初のオペランドが true の場合、最初のオペランドを返します

(2) 最初のオペランドが false の場合、2 番目のオペランドを返します


乗算演算子
ECMAScript では、乗算、除算、剰余の 3 つの乗算演算子を定義しています

Infinity*0//NaN
0/0//NaN
Infinity/Infinity//NaN

加算演算子

1. 加算 (文字列に変換)
両方の演算子は数値です
通常の加算計算を実行します。

Infinity + -Infinity//NaN

オペランドの 1 つが文字列の場合

両方の演算子が文字列の場合は、2 番目の演算子を最初の演算子と連結します

1 つの演算子のみが文字列の場合は、連結しますもう 1 つのオペランドが文字列に変換され、その後 2 つのオペランドが文字列に変換されます文字列が連結されます。

オペランドがオブジェクト、数値、またはブール値の場合は、toString() メソッドを呼び出して対応する文字列値を取得し、文字列に関する前述のルールを適用します。 null と unknown の場合は、String() 関数を呼び出して、それぞれ文字列「unknown」と「null」を取得します。

2 + '' //"2"

2. 減算 (値の変換)

両方のオペランドが数値の場合
通常の算術減算演算を実行し、オペランドの 1 つが NaN の場合、結果は NaN になります

Infinity - Infinity//NaN

Anオペランドが数値ではありません

オペランドが文字列、ブール値、null、または未定義の場合、最初に Number() 関数がバックグラウンドで呼び出されて数値に変換され、次に次に従って減算計算が実行されます。以前のルール。変換結果が NaN の場合、減算結果も NaN になります。

オペランドの 1 つがオブジェクトの場合、オブジェクトの valueOf() メソッドを呼び出して、オブジェクトを表す値を取得します。結果の値が NaN の場合、減算の結果も NaN になります。オブジェクトに valueOf() メソッドがない場合は、その toString() メソッドが呼び出され、結果の文字列が数値に変換されます。

5 - true//4

关系操作符
如果两个操作数都是数值,则执行数值比较
如果两个操作数都是字符串,则比较两个字符串对应的字符编码值
如果一个操作数是数值,则将另一个操作数转换为数值,然后执行数值比较

var result = &#39;23&#39; < &#39;3&#39;//true
var result = &#39;23&#39; < 3//false

相等操作符
1.相等和不相等
先转换再比较

(1)如果有一个操作数是布尔值,则在比较相等性之前,先将其转换为数值
(2)如果有一个操作数是字符串,另一个操作数是数值,先将其转换为数值
(3)如果有一个操作数是对象,另一个不是,则调用对象的valueOf()方法,用得到的基本类型值按前面的基本规则进行比较
null和undefined是相等的
要比较相等性之前不能将null和undefined转换为任何其他值
如果两个操作数都是NaN,相等操作符也返回false,按规则,NaN不等于NaN

2.全等和不全等
仅比较而不转换

"55" !== 55 //true

条件操作符

variable = boolean_expression ? true_value : false_value

本质上,这段代码的含义就是基于对boolean_expression求值的结果,决定给变量variable赋什么值。如果求值结果为true,则给变量赋true_value;如果求值结果为false,则给变量variable赋false_value值。

赋值操作符
简单的赋值操作符由等号表示,其作用就是把右侧的值赋给左侧的变量。

逗号操作符
逗号操作符多用于声明多个变量;但除此之外,逗号操作符还用来赋值。在用于赋值时,逗号操作符总会返回表达式中的最后一项。

以上がJavaScript のさまざまな演算子の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。