JS学習演算子(算術演算子、関係演算子、論理演算子、単項演算子、代入演算子)

1.算術演算子+-* /%(剰余記号)

コンピューターは自動データ型変換を実行します。異なるデータ型間で操作を実行し、データを同じデータ型に変換してから計算を実行する方法はありません。

  1. オペランドの1つは文字列であり、演算子は+記号です。他のデータ型が文字列に変換されると、2つの文字列が一緒にスプライスされます。
    alert('hello' + 100);//hello100
    alert('hello' + true);//hellotrue
    alert('hello' + NaN);//helloNaN
    alert('hello' + undefined);//helloundefined
    alert('hello' + 'de');//hellode
  1. データと文字列は+以外の操作を行うため、操作を実行する前に文字列を数値に変換する必要があります。(100-「20」は80になります)
  • 文字列が純粋な数字で構成される文字列の場合は、対応する数値に変換します。

  • 文字列に数字以外の文字が含まれている場合、文字列はNaN、NaNに変換され、データ操作はすべてNaNになります。

alert(100 - '20');//相当于100-20  结果为80
alert(100 -"20a");//'20a'转换成数字为NaN,所以结果为NaN
  1. 文字列以外のデータに対して算術演算を行う場合は、まず数値に変換してから演算を行ってください。
     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. 比較するときに異なるデータ型が従う規則:
    (1)両方のオペランドが数値の場合、数値が比較されます。
    (2)2つの演算子が両方とも文字列である場合、2つの文字列に
    対応する文字コード値を比較します。ASCIIコードテーブルは、コンピュータの各文字に対応するコードのテーブルです。
    ①2つの単一文字を比較する場合は、ASCIIコード値を直接比較します。
    ②サイズを比較して結果が出るまで少しずつ比較してください。
    "Abcd" <"ad":aは同じ、bは98、dは100なので、結果はtrueです。
    ASCIIテーブル
    (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

ここに画像の説明を挿入します

  1. === trueを返す前に、IDは同じ数とデータ型である必要があります

    注:Number(null)は0、Number(undefined)はNaNですが、null == undefinedはtrueです。

第三に、論理演算子&& ||!

  1. AND演算:

        &&  (表达式1 && 表达式2 ) 只有当两个表达式都为true时,整个表达式才为真。
    
        注意短路操作:只要左边一个为假,整个表达式就为假,不会再运行右边的代码。比如 10<5 && alert(num);    不会报未声明变量num的错误,因为右边不执行。
    
  2. または操作:

        || (表达式1 || 表达式2)  只有当两个表达式都为false时,整个表达式为假。
        (同样表达式1为真的话就会不在运行表达式二,直接得出整个表达式为true)
    
  3. 非動作:

        !表达式   将表达式的数据类型转换为布尔值(非0即真,非空即真),然后再取反。
    

4つの単項演算子++-

  1. a ++:

元の変数に1を追加し、最初にaの値をa ++式の値として取得し、次に1をaに追加します。

  1. ++ a:

元の変数に1を追加するには、最初に1をaに追加してから、aの値を++ aの式として使用します。

  var a = 5;
alert(a++);//5
alert(++a);//7 上一语句先将a的值作为a++的值输出,再对a加一变成6,此句将a加一变成7,再讲a得值7作为++a的值输出。
  1. a-、-a

元の変数を1デクリメントします

5、代入演算子basic =複合+ =-= *

   “=” 将等号右边的值赋值给等号左边的变量:
   var num = 10 + 20;
   alert(num); //结果是30
   “+=” : num = num + 9  =>  num += 9

おすすめ

転載: blog.csdn.net/qq_43812504/article/details/108404190