JavaScript演算子と論理分岐

6705 ワード

演算子
単項演算子
一つの値しか操作できない演算子を一項演算子と呼びます.
//         ,    
//       ,      
    :
  var x=5;
  var num1=++x;  //    x=x+1; var num1=x;
  console.log('num1='+num1+'  x='+x);  //num1=6  x=6

     :
  var x=5;
  var num2=x++;  //     var num2=x; x=x+1;
  console.log('num2:'+num2+'  x:'+x);  //num2=5  x=6

     :
  var x=5;
  var num3=--x;  //    x=x-1; var num3=x;
  console.log('num3='+num3+'  x='+x);  //num3=4  x=4

     
  var x=5;
  var num4=x--;  //    var num4=x;  x=x-1;
  console.log('num4='+num4+'  x='+x);  //num4=5  x=4
他の種類には、単項演算子の規則が適用されます.
var b = '89';
b++; //90,           
var b= 'ab';
b++; //NaN,          NaN
var b = false;
b++; //1,false    0,    1
var b = 2.3;
b++; //3.3,   1
割り当て演算子
値演算子をイコール(=)で表します.右の値を左の変数に割り当てます.複合割当演算子はx=の形で表され、xは算術演算子を表します.例えば:+=-=,*===,%=など
  =         x=2;
  +=       x+=3;    x=x+3;
  -=       x-=3;    x=x-3;  
  *=       x*=3;    x=x*3;
  -=       x/=3;    x=x/3;
  %=       x%=3;    x=x%3;
関係演算子
比較用の演算子を演算子と呼びます.
関係演算子の比較規則:
  • 数字と数字を比較して、直接サイズを比較します.
  • 数字と文字列を比較し、文字列を数字に変換してから
  • を比較する.
  • 文字列と文字列を比較し、文字のASCIIコード値比較
  • を行う.
  • 比較注意事項:
  • ブール値ture=1、false=0
  • NaNを含む演算はすべてfalseであり、undefinedとnullはいずれも0またはflase
  • に等しくない.
  • 恒久などを求めるなら、値とタイプは同じでなければなりません.
  • >                ,   true,     false。 
    3>2 //true
    
    <                ,      true,    false。  
    2<3 //true
    
    >=                      ,   true,     false。 
    2>=2 //true
    3>=2 //true
    
    <=      。              ,   true,     false。
    2<=2  //true
    2<=3  //true
    
    ==              ,   true,     false
    2==2 //true
    2=='2' //true
    
    !=               ,   true,     false。 
    2!=5 //true
    
    ===   (  )               ,   true,     false。
    55==='55' //false
    55===55  //true
    
    !==    (   )               ,   true,     false。
    55!=='55' //true
    55!==55  //false=0
    
        ture=1, false=0
    false == 0   //true
    true == 1    //true 
    true == 2    //false
    
    undefined      null  ,        ,      。
    null == undefined  //true
    null === undefined //false
    
      NaN     false
    'NaN' == NaN  //false
    5 == NaN     //false
    NaN == NaN   //false
    
    undefined  null     0,flase 
    null == 0    //false
    null == false    //false
    
    undefined == 0    //false
    undefined == false    //false
    論理演算子
    論理演算子は通常、ブール値の動作に用いられます.一般的には関係演算子と組み合わせて使用されます.3つの論理演算子があります.論理和和和&(AND)、論理または||(OR)、論理非!(NOT)
    &論理和:最初の操作数がfalseであれば、2番目の数はtrueであれfalseであれ、falseであれ、いずれもfalseに戻ります.シンボルの両方の操作数はtrueに戻ります.そうでないとfalseに戻ります.
    var flag=(true) && (true)   //true
    var flag=(false) && (true)  //false
    var flag=(false) && (false)  //false
    |?論理あるいは:もし第一操作数の求値がtrueであれば、第二の数はtrueであれfalseであれ、trueに戻る.すなわち、シンボルの両方の動作数は同時に偽であり、falseに戻ります.そうでないとtrueに戻ります.
    var flag=(false) || (false)  //false
     var flag=(true) || (true)    //true
     var flag=(true) || (false)   //true
    !論理非演算子は、任意の値に使用できます.この値がどんなデータタイプであっても、この演算子はブール値を返します.その流れは、まずこの値をブール値に変換してから反対を取るというルールです.
         ,  false,    true
    var flag=!(true);   //false
    var flag=!(false);  //true
    
              ,   true;      ,   false
    var flag=!('')     //true
    var flag=!('test') //false
    
          0,   true;    0  (   Infinity),  false
    var flag=!(0) //true
    var flag=!(1)  //false
    
        NaN,   true
    var flag=!(NaN) //true
    
        undefined,   true
    var flag=!(undefined) //true
    文字列演算子
    文字列演算子:文字列演算子は一つしかありません.すなわち「+」です.その役割は二つの文字列を加算することです.ルール:少なくとも一つの操作数は文字列です.
    var result1='hello'+'world'; //        ,          
    console.log(result1); //helloworld
    console.log(typeof result1);   
    
    //           ,         ,                 ,     
    var result2='hello'+2; 
    console.log(result2); //hello2
    console.log(typeof result2);  
    三項演算子(三項条件演算子)
    三項演算子(三項条件演算子):式?値1:値2表式の値がtrueであれば、結果は1を取ります.そうでないと値2になります
       :(          true,     1。    2。)
          ?  1 :  2
    
    var age=11;
    var status = (age >= 18) ? "major" : "minor";
    
     age    18   ,       “major”   status;       “minor”   status。
    
    演算子の優先度
    |演算子?記述??---------------------------------------------------------------:124124; 124124;?.[]()124;対象メンバーのアクセス、配列の下付き、関数の呼び出しなど||++~!delete new type of void?一元演算子??乗算、除算、残?+124;加算、減算、文字列接続?<>>>>>>>|シフト|?===stance関係、比較関係!恒等(全等)??と124124124;の位が異なる、124124124124;?の位と124124124124;の論理と124124124124124; 124124; 124124;の論理と124124124; 124; 124124; 124; 124; 124; 124;の論理と124124124; 124; 124124; 124; 124; 124; 124; 124;の論理と124124124;?三元条件124=x=124の賦値、演算割当値124=x=12464;の賦値、演算割当値12464;、124の多重賦値、配列要素124
    表式
    表式はjavascriptの中の一つのフレーズで、表式は計算に用いることができる式子、すなわち値を生成することができる式子を意味します.変数名も簡単な表現です.その値は変数に割り当てられた値です.複雑な表現は演算子と演算子(変数または定数)からなる式を演算子演算子といいます.演算式関係演算子からなる式を、関係式または条件式論理演算子からなる式を、論理式といいます.a+5;c>3;a&bなど
    フロー制御
    JavaScriptには三つの基本的なフロー制御構造があります.順序構造、選択構造、循環構造、フロー制御はコードの実行順序を制御するために使います.JavaScripはシーケンス構造に選択構造と循環構造を含めることができる.
    順序構造:語句の順序に従って順次実行すること.
    選択構造:与えられた論理条件に従って実行順序を決定すること.選択構造は、一方向選択、双方向選択、多方向選択に分けられます.ただし、一方向または多方向選択に関わらず、プログラムは実行中に一つの分岐しか実行できません.
    循環構造とは、コードの論理条件に基づいて、あるプログラムを繰り返し実行するかどうかを判断することです.論理条件がtrueであれば、繰り返し実行します.すなわちサイクルに入ります.そうでなければサイクルを終了します.
    循環構造は先に論理条件を判断してもいいし、循環体を先に実行してもいいです.
    if単支文
    if         :
    if(   ){
        
    }
    括弧内の表式結果が成立すると、大括弧内の文が実行されません.
    注意:
  • ifの後ろの()は省略できません.
  • 実行文は省略できます.複数の場合は省略してはいけません.一つでも複数でも{}
  • を書くことをおすすめします.
    ifバイパス文の書き方:
    if(   ){
        1
    }
    else{
        2
    }
    if括弧内の表現結果が成立すると、実行文1が実行されます.そうでないと実行文2が実行されます.
    注意:else文はif文と組み合わせる必要があります.
    ifマルチ分岐文
    if多分岐文の書き方:
    if(   ){
        1
    }
    else if(   2){
        2
    }
    else if(   3){
        3
    }
    else{
        n
    }
    上から下へ、どの条件を満たすかに応じた語句を実行します.すべて満たさない場合、最後のelseを実行する語句は、その中の一つにのみ入ります.
    ifの入れ子
    if文ブロック全体を別のif文ブロックに挿入します.
    if (   1) {
      if (   2) {
        if (   3){
            ;
        }
        else{
            ;
        }
      }
      else{
          ;
      }
    }
    注意:ifを入れ子にした場合、3層を超えないようにしてください.内部レイヤーの各ペアはif...elseコードはインデントされます.
    そろえるコードを作成する時、elseは一番近いifとペアになります.
    需要:輸出年齢別の呼称:少年:18歳以下、青年:18歳から40歳まで、中年:40歳から60歳まで、老年:60歳以上
    赤ちゃん(0歳~1歳)、子供(1歳~4歳)、子供(4歳~7歳)、中童(7歳~13歳)、大童(13歳~18歳)、大人は18歳です.
    switch case文
    異なる条件に基づいて異なる動作を実行するために、複数の条件があれば、ネストされたif文を用いて解決することができるが、この方法はプログラムの複雑さを増し、プログラムの可読性を低下させる.
    //n     /   , n     a1、a2、……  , n         ,           ,       break ,    switch  ;     n    ,      default     。
    
    switch(n)
    {
        case a1:
                  1
            break;
        case a2:
                  2
            break;
        default:
              case a1   case a2         
    }