JavaScriptの式と演算子の詳しい解説

巴扎黑
リリース: 2017-07-29 17:15:10
オリジナル
1130 人が閲覧しました

この記事では主に JavaScript の式と演算子を紹介します。必要な友人は参照してください。

JavaScript スクリプト言語では、単項演算子、ブール演算子、算術演算子、関係演算子、三項演算子など、データ値の操作に使用される一連の演算子について説明します。 、ビットごとの演算子、代入演算子。
式とは、変数名 (またはリテラル) と演算子を含む JavaScript 言語の「フレーズ」です。最も単純な式はリテラルまたは変数名です。もちろん、単純な式を組み合わせて複雑な式を作成する方法もあります。
1。同じ。ただし、代入演算中に、インクリメント演算子またはデクリメント演算子が前にある場合は、先行する演算子が最初に累積または減分されてから割り当てられ、後置演算子の場合は、値が最初に割り当てられてから、累積または減分されます。
(2) 加減算演算子は、正負の演算に使用され、数値列を数値形式に変換する機能もあります。


var box1=100; 
++box1;//相当于box=box+1 
document.write("box1="+box1+"<br/>");//输出box1=101 
var box2=100; 
--box2;//相当于box=box2-1 
document.write("box2="+box2);//输出box2=99
ログイン後にコピー


2. 算術演算子

JavaScript 言語で指定される算術演算子は、+、-、*、/、% (剰余) の 5 つです。算術演算子の値が数値ではない場合は、最初に Number() 変換関数を使用して数値に変換されます (暗黙的な変換)。


var box=100; 
var age=++box;//box先累加1为101,再赋值给age为101 
var height=box++;//box先赋值给height为101,box再累加为102 
document.write("age="+age+"<br/>");//输出age=101 
document.write("height="+height+"<br/>");//输出height=101 
document.write("box="+box);//输出box=102,原因是box经过了两次累加,所以是102
ログイン後にコピー
どうしてですか? JavaScript 言語で算術演算を実行する場合、そのいずれかが文字列であれば、結果は文字列に変換されます。文字列連結演算子と同等であり、加算算術演算子としてカウントできなくなりました。

var box = "20"; 
document.write(typeof box+"<br/>"); //输出string 
var age=-box; 
document.write(age+"<br/>");//输出-20 
document.write(typeof age); //输出number
ログイン後にコピー

剰余

var box=100+"100"; 
document.write("box="+box+"<br/>");//输出100100 
document.write(typeof box);//输出string
ログイン後にコピー


3. 関係演算子

比較に使用される演算子は、関係演算子と呼ばれます: <(より小さい)、>(より大きい)、< ;= (以下)、>= (以上)、== (相対)、!= (不等)、=== (同一または一致)、!== (一致または同一ではない) 。ほとんどの関係演算子はブール値を返します。
’ ’ s

’ ‐ ’ s ’s 1-と1 to 1。 2 つのオペランドの一方が数値の場合、もう一方を数値に変換し、数値演算を実行します。比較

4 2 つのオペランドのいずれかがオブジェクトの場合は、最初に value() メソッドまたは toString() メソッドを呼び出し、結果を比較します。


var box="100"-10; 
document.write("box="+box+"<br/>");//输出90 
var age=5/4; 
document.write("age="+age+"<br/>");//输出1.25 
var height=("你的年龄是:"+(10+10));//括号强制优先级 
document.write(height);//输出你的年龄是:20
ログイン後にコピー

等号と不等号の比較では、オペランドが数値以外の場合、次の規則に従います:
1. オペランドがブール値の場合、数値に変換されます。 false は 0 に変換され、true は 1 に変換されます。

2 オペランドの一方が文字列の場合は、比較前に数値に変換してから比較します。

3. 1 つのオペランドがオブジェクトの場合は、最初に value() メソッドまたは toString() メソッドを呼び出してから比較します。
4 変換を行わなければ、null と unknown は等しいです

5 1 つのオペランドが NaN の場合、 == は false を返し、 != は true を返し、NaN はそれ自体と等しくありません

6 両方のオペランドはオブジェクトであり、それらがオブジェクトであるかどうかを比較します両方が同じオブジェクトを指している場合は true を返し、それ以外の場合は false を返します 7 合同と合同の判定では、例えば値と型が等しい場合は true を返し、それ以外の場合は true を返します。ファスレ。



var box1=&#39;2&#39;==2; 
document.write(box1+"<br/>");//输出true,比较的只是数值 
var box2={}=={}; 
document.write(box2+"<br/>");//输出false,因为比较的是它们的地址,每个新创建对象的引用地址都不同。 
var box3=null==undefined; 
document.write(box3+"<br/>");//输出true,因为均为空数值 
var box4=&#39;2&#39;===2; 
document.write(box4+"<br/>");//输出false,两个操作数的数据类型不相等 
var box5=null===undefined; 
document.write(box5);//输出false,两个操作数的数据类型不相等
ログイン後にコピー

四逻辑运算符
JavaScript语言中的逻辑运算符通常作用于布尔值的操作,一般和关系运算符配合使用,有三个逻辑运算符:&&(逻辑与),||(逻辑或)和!(逻辑非)。
(1)&&表示两边都必须是true,才返回true。
如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时遵循下面的规则:
1第一个操作数是对象,则返回第二个操作数
2第二操作数是对象,则第一个操作数返回true,才返回第二个操作数,否则返回false
3一个操作数是null,则返回null
4一个操作数是undefined,则返回undefined
5如果一个运算数是对象,另一个是 Boolean 值,返回该对象
逻辑与运算符属于短路操作,如果有第一个操作数返回的是false,第二个不管是true还是false都返回false。


var box1={}&&(5>4); 
document.write(box1+"<br/>");//输出true 
var box2=(5>4)&&{}; 
document.write(box2+"<br/>");//输出[object Object] 
var box3=(3>4)&&{}; 
document.write(box3);//输出false
ログイン後にコピー

(2)||表示两边有一个是true,就返回true。
如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时遵循下面的规则:
1第一个操作数是对象,则返回第一个个操作数
2第一个操作数的求值结果为fasle,则返回第二个操作数
3两个操作数都是对象,则返回第一个操作数
4两个操作数都是null,则返回null
5两个操作数都是undefined,则返回undefined
6两个操作数都是NaN,则返回NaN
逻辑或运算符也属于短路操作,如果有第一个操作数返回的是true,第二个不管是true还是false都返回true。


var box1={}||(5>4); 
document.write(box1+"<br/>");//输出[object Object] 
var box2=(5>4)||{}; 
document.write(box2+"<br/>");//输出true 
var box3=(3>4)||{}; 
document.write(box3);//输出[object Object]
ログイン後にコピー

(3)!逻辑非运算符可以作用与任何值,无论这个值是什么数据类型,这个运算符都会返回一个布尔值,它的流程是:先将这个值转换成布尔值,然后取反,规则如下:
1操作数是一个对象,返回false
2操作数是一个空字符串,返回true
3操作数是一个非空字符串,返回false
4操作数是数值0,返回true
5操作数是任意非0数值,返回false
6操作数是null,返回true
7操作数是NaN,返回true
8操作数是undefined,返回true


var box=!{}; 
document.write(box);//输出false
ログイン後にコピー

五、位运算符
JavaScript语言中包括了七种位运算符:~(位非),&(位与),|(位或),^(位异或),<<(左移),>>(有符右移号),>>>(无符号右移)
(1)位非(~)运算把运算数转换成32位数字,然后把二进制数转换成它的二进制反码,最后把二进制数转换成浮点数。实质上是对数字求负,然后减去1即为所得值。


var box=~25; 
document.write(box);//输出-26
ログイン後にコピー

(2)位与(&)运算直接对数字的二进制形式进行运算,然后对上下同一位置的两个数位进行与运算,只有两个数位都为1时才得出1,其余的均为0.


var box=25&3; 
document.write(box);//输出1
ログイン後にコピー

(3)位或(|)运算也是直接对数字的二进制形式进行计算,然后对上下同一位置的两个数位进行或运算,只右两个数位都为0时才得出0,其余的均为1.


var box=25|3; 
document.write(box);//输出27
ログイン後にコピー

(4)位异或(^)也是直接对二进制形式进行运算。当只有一个数位存放的是1时,它才返回1。其余的返回0。也就是两个数位相同时返回0,不同时返回1.


var box=25^3; 
document.write(box);//输出26
ログイン後にコピー

(5)左移运算也是对二进制数进行操作,相等于第一个操作数乘以(2的左移位数次幂)的积。


var box=25<<3; 
document.write(box);//25左移3位相当于25乘以(2的3次幂),因此输出200
ログイン後にコピー

(6)有符号右移运算也是对二进制数进行操作,相等于第一个操作数除以(2的右移位数次幂)的商。


var box=24>>2; 
document.write(box);//输出6
ログイン後にコピー

(7)无符号右移运算也是对二进制数进行操作,对于正数,与有符号右移是相同的结果,但是对于负数,就会所不同。

六、赋值运算符
赋值运算符包括:=(),+=(),-=(),*=(),/=(),%=(),<<=(),>>=(),>>>=()。


var box=100; 
box+=100;//相当于box=box+100 
document.write("box="+box);//输出box=200
ログイン後にコピー

七、其他运算符
1)、字符串运算符:“+”,它的作用是将两个字符串想加。规则:只要有一个字符串即可。


var box=100+"10"&#39;; 
document.write("box="+box);//输出100100
ログイン後にコピー

2)、逗号运算符,可以在一条语句中执行多个操作


var box=100,age=200,height=300; 
document.write("box="+box);//输出box=100
ログイン後にコピー

3)、三元操作符:


var box=(3>4)?"对":"错"; 
document.write(box);//输出错
ログイン後にコピー

      如果想更详细的了解ECMAScript运算符的知识,可以访问JavaScript高级教程中的ECMASscript一元运算符这个系列中有详细的运算符教程。对于JS的运算符来说,我们可以对比着C++,C#和Java来学,这个还是相当的容易的。

以上就是关于JavaScript的表达式与运算符的全部内容,希望对大家的学习有所帮助。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート