ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript の 8 種類の演算子の概要

JavaScript の 8 種類の演算子の概要

伊谢尔伦
伊谢尔伦オリジナル
2017-07-19 09:19:26964ブラウズ

1. 単項演算子

1. 削除演算子: 以前に定義されたオブジェクトのプロパティまたはメソッドへの参照を削除します。例:

var o=new Object; 
o.name="superman"; 
alert(o.name); //输出 "superman" 
delete o.name; 
alert(o.name); //输出 "undefined"

は、name 属性を削除し、未定義 (つまり、作成された初期化されていない変数の値) に設定します。 delete は、開発者によって定義されていない (つまり、ECMAScript によって定義されている) プロパティとメソッドを削除できません。
たとえば、次のコードはエラーを引き起こします: delete o.toString(); 2. void 演算子: 任意の値に対して未定義を返します。この演算子は通常、出力すべきでない値の出力を避けるために使用されます。

例: HTML ページで 675eda870be2316d492275bfd24cd4c7Click Me5db79b134e9f6b82c0b36e0489ee08ed

リンクをクリックすると、Web ページ内のリンクが消え、「[ object] が表示されます (IE と Firefox では、[object Window] が表示されます。Google では、リンクは同じです)。 window.open() メソッドは新しく開かれたウィンドウへの参照を返すためです。次に、オブジェクトは表示される文字列に変換されます。この結果を回避するには、void 演算子を使用して window.open() 関数を呼び出すことができます:

<a href="javascript:void(window.open(&#39;about:blank&#39;))">Click Me</a>

これにより、window.open() 呼び出しは未定義を返します。これは有効な値ではなく、ブラウザウィンドウ。

3. 前置インクリメント/前置デクリメント演算子: C での使用法と同じ。演算は式が評価される前に行われます。例: ++i; --i。

4. 後置インクリメント/後置デクリメント演算子: 後置演算子は、それらを含む式を計算した後にインクリメントまたはデクリメント演算を実行します。例: i++;

5. 単項加算と単項減算は基本的に数値には影響しません: var iNum=25; iNum=+iNum; //出力 25

単項加算演算子は文字列を計算するときに、 parseInt() と同様の方法で文字列を計算します。主な違いは、「0x」で始まる文字列 (16 進数を表す) の場合、単項演算子はそれを 10 進数値に変換できることです。したがって、「010」を単項加算で変換すると常に 10 になりますが、「0xB」は 11 に変換されます。

var sNum="25";alert(typeof sNum); //「文字列」を出力
var iNum=+sNum; //「数値」を出力
1元の減算は、値を否定します。これは 1 元と同じです。 加算演算子と同様に、単項減算演算子も文字列を近似数値に変換し、値を否定します。
var sNum = "25"; alter(typeof sNum); //「文字列」を出力
var iNum = -sNum; //「-25」を出力
alert(typeof iNum);数値"


2. ビット演算子: バイナリに関連する一連の演算子


ビット演算子 NOT は否定記号 (~) で表されます。 ビット演算子 AND はアンパサンド記号 (&) で表されます。 ビット単位の演算子 OR は記号 (|) で表されます。
ビット単位の演算子 XOR は記号 (^) で表されます。
左シフト演算は、2 つの不等号 (符号付き右シフト演算子は、2 つの大なり記号 (>>) で表されます。
符号なし右シフトは、3 つの大なり記号 (>>>) で表されます。


3. ブール演算子
ブール演算子には、NOT、AND、OR の 3 種類があります。
1. 論理否定は感嘆符 (!) で表されます。この演算子は通常、ループを制御するために使用されます。論理 OR 演算子や論理 AND 演算子とは異なり、論理 NOT 演算子はブール値を返す必要があります。論理 NOT 演算子は次のように動作します:
オペランドがオブジェクトの場合は、false を返します。
オペランドが数値 0 の場合、true を返します。
オペランドが0以外の数値の場合、falseを返します。
オペランドがnullの場合はtrueを返します。
オペランドが NaN の場合、true を返します。
オペランドが未定義の場合はエラーとなります。
例: var b = true;
while(!b){… }
2. 二重アンパサンド (&&) で表される論理 AND 演算子。結果が true になる状況は 1 つだけです: true && true = true;
論理 AND 演算のオペランドは、ブール値だけでなく、任意の型にすることができます。オペランドがプリミティブ ブール値ではない場合、論理 AND 演算は必ずしもブール値を返すとは限りません。
一方のオペランドがオブジェクトで、もう一方がブール値の場合、オブジェクトが返されます。
両方のオペランドがオブジェクトの場合は、2 番目のオブジェクトを返します。
オペランドが null の場合は、null を返します。
オペランドが NaN の場合は、NaN を返します。
オペランドが未定義の場合はエラーとなります。
最初のオペランドが false の場合、2 番目のオペランドの値が何であっても、結果が true になることはありません。
3. 論理 OR 演算子。二重縦棒 (||) で表されます。結果が false になるケースは 1 つだけです。 false || 他のケースは true です。
論理 AND 演算子と同様に、オペランドがブール値でない場合、論理 OR 演算は必ずしもブール値を返すとは限りません。
一方のオペランドがオブジェクトで、もう一方がブール値の場合、オブジェクトが返されます。
両方のオペランドがオブジェクトの場合は、最初のオブジェクトを返します。
オペランドが null の場合は、null を返します。
オペランドが NaN の場合は、NaN を返します。
オペランドが未定義の場合はエラーとなります。
論理 OR も単純な演算です。論理 OR 演算子の場合、最初のオペランドの値が true の場合、2 番目のオペランドは計算されません。


4. 乗算演算子
1. アスタリスク (*) で表される乗算演算子は、2 つの数値を乗算するために使用されます。ただし、特別な値を扱う場合、ECMAScript の乗算にもいくつかの特別な動作があります。
オペランドがすべて数値の場合、通常の乗算​​演算が実行され、結果が大きすぎるか小さすぎる場合、生成される結果は Infinity または -Infinity になります。
オペランドが NaN の場合、結果は NaN になります。
無限大に 0 を掛けると、結果は NaN になります。
Infinity 0 以外の数値を乗算すると、結果は Infinity または -Infinity になり、2 番目のオペランドの符号によって決まります。
2. スラッシュ (/) で表される除算演算子は、最初の数値を 2 番目の数値で除算します。特殊な値の場合、特殊な動作は次のとおりです。
オペランドがすべて数値の場合、結果が大きすぎるか小さすぎる場合、生成される結果は Infinity または -Infinity になります。
オペランドが NaN の場合、結果は NaN になります。
0 は非無限数を除算し、結果は NaN になります。
無限大は 0 以外の数値で除算され、結果は第 2 オペランドの符号によって決まる無限大または -無限大になります。
3. パーセント記号 (%) で表されるモジュロ演算子。オペランドが両方とも数値の場合は、通常の算術除算を実行し、剰余を返します。特別な動作:
被除数が無限であるか、除数が 0 の場合、結果は NaN になります。
除数が無限数の場合、結果は被除数になります。
配当が0の場合、結果は0になります。


5. 加算演算子
1. 加算演算子 (+)、特別な動作:
オペランドが NaN の場合、結果は NaN になります。
無限大プラス -無限大、結果は NaN になります。
オペランドが文字列の場合、次のルールが適用されます:
両方のオペランドが文字列の場合、2 番目の文字列を最初の文字列に連結します。
一方のオペランドのみが文字列の場合、もう一方のオペランドを文字列に変換すると、結果は 2 つの文字列が連結された文字列になります。
2. 減算演算子 (-)、両方のオペランドが数値の場合、算術減算が実行されます。特別なルール:
オペランドが NaN の場合、結果は NaN になります。
オペランドは数値ではないため、結果は NaN になります。


六、关系运算符
关系运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算,比较方式与算术比较运算相同。每个关系运算符都返回一个Boolean值。
对于字符串,第一个字符串中每个字符的代码都会与第二个字符串中对应位置上的字符的代码进行数值比较。
1、大写字母的代码都小于小写字母的代码,所以要得到按照真正的字母顺序比较结果,必须把两个运算数转换成相同的大小写形式,再进行比较。
2、在比较两个字符串形式的数字时,比较的是它们的字符代码。
3、比较一个字符串和数字,ECMAScript都会把字符串转换为数字,然后按照数字顺序比较它们。如果字符串不能转换成数字,那么返回NaN,任何包含NaN的关系运算都要返回false。因此,这样会返回false。 


七、等性运算符 

1、等号(==) 和非等号(!=),为确定两个运算数是否相等,这两个运算符都会进行类型转换。执行类型转换的基本规则如下:
如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。False转换成0,true转换成1。
如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
如果一个运算数是对象,另一个是字符串,在检查等性之前,要尝试把对象转换成字符串(调用toString()方法)。
如果一个运算数是对象,另一个是数字,在检查等性之前,要尝试把对象转换成数字。
在进行比较时,该运算符还遵守下列规则:
值null和undefined相等。
在检查相等性时,不能把null和undefined转换成其他值。
如果某个运算数是NaN,等号将返回false,非等号将返回true。即使两个运算数都是NaN,等号仍然返回false,因为根据规则,NaN不等于NaN。
如果两个运算数都是对象,那么比较的是他们的引用值。如果两个运算数指向同一个对象,那么等号返回true,否则两个运算数不等。 

2、全等号和非全等号
等号和非等号的同类运算符是全等号和非全等号。这两个运算符所做的与等号和非等号相同,只是他们在检查相等性前,不执行类型转换。
全等号由三个等号(===)表示,只有在无需类型转换运算数就相等的情况下,才返回true。

var sNum="55"; var iNum=55; alert(sNum==iNum); //输出 "true" 
alert(sNum===iNum); //输出 "false"

非全等号由两个感叹号加两个等号(!==)表示,只有在无需类型转换运算数不相等的情况下,才返回true。

var sNum="55"; var iNum=55; alert(sNum != iNum); //输出 "false" 
alert(sNum !== iNum); //输出 "true"


八、其他运算符
1、条件运算符,即三元运算符 : variable = boolean_expression ? true_value : false_value;
2、赋值运算符(=) 复合赋值运算符:+=、-=、*=、/=、%=、c1416f47236dd7b5b9b6ea098534dc8d>=、>>>=
3、逗号运算符 用逗号运算符可以在一条语句中执行多个运算。 如: var iNum1=1,iNum2=2;

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

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