1.算術演算子+-* /%(剰余記号)
コンピューターは自動データ型変換を実行します。異なるデータ型間で操作を実行し、データを同じデータ型に変換してから計算を実行する方法はありません。
- オペランドの1つは文字列であり、演算子は+記号です。他のデータ型が文字列に変換されると、2つの文字列が一緒にスプライスされます。
alert('hello' + 100);//hello100
alert('hello' + true);//hellotrue
alert('hello' + NaN);//helloNaN
alert('hello' + undefined);//helloundefined
alert('hello' + 'de');//hellode
- データと文字列は+以外の操作を行うため、操作を実行する前に文字列を数値に変換する必要があります。(100-「20」は80になります)
-
文字列が純粋な数字で構成される文字列の場合は、対応する数値に変換します。
-
文字列に数字以外の文字が含まれている場合、文字列はNaN、NaNに変換され、データ操作はすべてNaNになります。
alert(100 - '20');//相当于100-20 结果为80
alert(100 -"20a");//'20a'转换成数字为NaN,所以结果为NaN
- 文字列以外のデータに対して算術演算を行う場合は、まず数値に変換してから演算を行ってください。
alert(10 + true);//true=>1
alert(10 +false); //false=>0
alert(100 - NaN); //结果NaN
alert(100 -undefined);//结果NaN
alert(100 -null); //结果100 null=>0
注意:
<1>コンピューターは10進演算を実行しません。
<2> jsでは除数を0にすることができます。
alert(0.8-0.1)
alert(10 / 0);//Infinity
alert(-10 / 0);//-Infinity
Infinity是一个数字,可以跟数字运算 ,结果总是无穷大。
次に、関係演算子<> <=> = ==!= ===!==
- 判断の結果は絶対にブール値です
- 比較するときに異なるデータ型が従う規則:
(1)両方のオペランドが数値の場合、数値が比較されます。
(2)2つの演算子が両方とも文字列である場合、2つの文字列に
対応する文字コード値を比較します。ASCIIコードテーブルは、コンピュータの各文字に対応するコードのテーブルです。
①2つの単一文字を比較する場合は、ASCIIコード値を直接比較します。
②サイズを比較して結果が出るまで少しずつ比較してください。
"Abcd" <"ad":aは同じ、bは98、dは100なので、結果はtrueです。
(3)2つのオペランドの一方が値の場合、もう一方は値に変換されてから、値が比較されます。
1 == true //true转成数字是1,false转成数字是0,比较结果是true
10 == "10" //结果是true
(4)NaN、==はfalseを返し、!=はtrueを返し、NaNはそれ自体と等しくありません。
alert(10 == "10a" );//false
alert(10 != "10a");//true
alert("10a" == NaN);//false
-
=== trueを返す前に、IDは同じ数とデータ型である必要があります
注:Number(null)は0、Number(undefined)はNaNですが、null == undefinedはtrueです。
第三に、論理演算子&& ||!
-
AND演算:
&& (表达式1 && 表达式2 ) 只有当两个表达式都为true时,整个表达式才为真。 注意短路操作:只要左边一个为假,整个表达式就为假,不会再运行右边的代码。比如 10<5 && alert(num); 不会报未声明变量num的错误,因为右边不执行。
-
または操作:
|| (表达式1 || 表达式2) 只有当两个表达式都为false时,整个表达式为假。 (同样表达式1为真的话就会不在运行表达式二,直接得出整个表达式为true)
-
非動作:
!表达式 将表达式的数据类型转换为布尔值(非0即真,非空即真),然后再取反。
4つの単項演算子++-
- a ++:
元の変数に1を追加し、最初にaの値をa ++式の値として取得し、次に1をaに追加します。
- ++ a:
元の変数に1を追加するには、最初に1をaに追加してから、aの値を++ aの式として使用します。
var a = 5;
alert(a++);//5
alert(++a);//7 上一语句先将a的值作为a++的值输出,再对a加一变成6,此句将a加一变成7,再讲a得值7作为++a的值输出。
- a-、-a
元の変数を1デクリメントします
5、代入演算子basic =複合+ =-= *
“=” 将等号右边的值赋值给等号左边的变量:
var num = 10 + 20;
alert(num); //结果是30
“+=” : num = num + 9 => num += 9