03.JS運算符

前言:
   學習一門編程語言的基本步驟
 (01)瞭解背景知識
 (02)搭建開發環境
 (03)語法規範
 (04)常量和變量
 (05)數據類型
 (06)數據類型轉換
 (07)運算符
7.運算符
 表達式:由運算符鏈接的操做數據,所組成的形式。
 運算符分爲算數運算符,比較運算符,邏輯運算符,位運算符,賦值運算符,三目運算符
(1)算術運算符——math
        + (加)編程

    //
    console.log(3+2);//5

        - (減)編程語言

    //
    console.log(3-2);//1

        * (乘)學習

    //
    console.log(3*2);//6

        / (除)spa

    //
    console.log(3/2);//1.5

        % (取餘)隔行換色,判斷是否爲閏年code

    //取餘
    console.log(3%2);//1
    console.log(2%3);//2

        ++(自增)在原來的基礎上加1blog

    //自增
    var a=1;         //此時a值是1
    a++;             //在原來的基礎上加1,此時a值是2
    console.log(a);  //獲取加1以後的a,此時a值是2
    console.log(a++);//在a=2的基礎上加1,此時a值爲3,存在內存之中,
    console.log(a);  // 從新獲取a值,a值爲3

        --(自減)在原來的基礎上減1內存

    //自減
    var b=3;          //此時b值是3
    b--;              //在原來的基礎上減1,此時b值是2
    console.log(b);   //獲取減1以後的b,此時b值爲2
    console.log(b--); //在b=2的基礎上減1,此時b值爲1,存在內存當中
    console.log(b);   //從新獲取b值,b值爲1

        console.log(a++);先打印a的值,在執行自增開發

    // 先打印a的值,在執行自增
    //1.聲明一個變量
    var a=1;
    //此時a仍是1,打印就是1,打印完後,在執行自增,這時候a變成2,存在內存當中
    console.log(a++);//輸出爲1
    //從新從內存中獲取a的值
    console.log(a);//輸出爲2

        console.log(++a);先執行自增,在打印a的值字符串

    //先執行自增,在打印a的值  
    //2.聲明變量a
    var a=1;
    //先讓a的值執行自增,此時a的值變成了2,而後在打印a的值就是2
    console.log(++a);//輸出爲2
    //從新獲取值也是2
    console.log(a);//輸出爲2

    //綜合
    var num=3;
    //第一個num的值打印爲3,可是內存爲2,影響內存中的儲存的值,而後後面的num取內存中的值,因此是1,3+1=4,
    console.log(num--+--num);//4

(2)比較運算符——compare
        返回都是一個布爾型的值,若是數據類型不一樣,會發生數據類型的轉換
        >     (大於) console

    //> 大於
    console.log(3>4);//false

        <     (小於)

    //< 小於
    console.log(3<4);//true

        >=   (大於等於)

    //> 大於等於
    console.log(3>=4);//false

        <=   (小於等於)

    //< 小於等於
    console.log(3<=4);//true

        ==   (等於)    比較兩個值是否相等

    //==  等於 只比較值,不比較類型
    console.log(7=='7');//ture

        !=    (不等於)

    //!=不等於
    console.log(3!=4);//true
    console.log(3!=3);//false
    console.log(3!='3');//false 僅比較值

        === (全等於) 不只比較值,還會比較類型是否相等

    //=== 全等於  比較值和類型
    console.log(7==='7');//false

        !==  (全不等於)

    //!==不等於
    console.log(3!==4);//true
    console.log(3!==3);//false
    console.log(3!=='3');//true 比較值和類型

        數據類型的轉換

    //數字類型轉換  字符串轉成了數字
    console.log(13>'10');//ture
    //兩個字符串比較,比較的是首個字符的Unicode碼,3——> 51    1——> 49   a——> 97
    console.log('3'>'10');//true
    console.log('張鐵牛'>'張大柱');//true
    console.log('張'.charCodeAt()>'張'.charCodeAt());//false
    console.log('鐵'.charCodeAt());//38081
    console.log('牛'.charCodeAt());//29275
    console.log('大'.charCodeAt());//22823
    console.log('柱'.charCodeAt());//26609

        NaN和任何值比較(> < >= <= == === != !==),包括自身,都返回false。

    //NaN和任何值比較
    //3>NaN
    console.log(3>'10a');//false
    //3<NaN
    console.log(3<'10a');//false
    //3>=NaN
    console.log(3>='10a');//false
    //3<=NaN
    console.log(3<='10a');//false
    //3==NaN
    console.log(3=='10a');//false
    //3===NaN
    console.log(3==='10a');//false
    //NaN==NaN
    console.log(NaN==NaN);//false
    //NaN===NaN
    console.log(NaN===NaN);//false
    //3!=NaN
    console.log(3!='10a');//true
    //3!==NaN
    console.log(3!=='10a');//true

(3)邏輯運算符——logic
        and &&  而且       關聯的兩個條件都知足,結果是ture不然是false

    //而且 &&
    //判斷一我的的工資是否在5000-8000支間
    var salary=7000;
    console.log(salary>=5000 && salary<=8000);//true
    //聲明兩個變量,分別保存用戶名和密碼,若是用戶名爲root,而且密碼爲123456,打印true,否者false。
    var uname="root";
    var password="123456";
    console.log(uname==="root" && password==="123457");//false

        or     ||    或者      關聯的兩個條件知足其一,結果是ture,否者是false

    //或者 ||
    //判斷是否知足讓座標準,兒童12歲如下或者老人65歲以上
    var age=50;
    console.log(age<=12 || age>=65);//false
    //聲明變量保存用戶,若是使用用戶名root或者使用手機號碼18112345678,知足其一,打印true,否者false
    var uname="root";
    var uname="18112345678";
    console.log(uname==="root" || uname==="18112345678");//true

        !      非   取反向   !ture=false !false=true

    //取反向 !
    var r=true;
    console.log(!r);//false

(4)邏輯短路,關注點不在結果是真假,關注點在後面的程序是否會執行!!!
        and=&& 而且     當第一個條件爲false的時候,就不須要在執行第二條件

    //邏輯短路
    //and=&& 而且     當第一個條件爲false的時候,就不須要在執行第二條件
    var num=3;
    num>5 && console.log(num);//false,不執行後續
    num<5 && console.log(num);//3

        or = ||     或者     當第一個條件爲true的時候,就不須要執行第二條件
        注意事項:邏輯短路無需關注運算符的整個邏輯計算的結果是ture仍是false,重點看是否會執行第二條件。

    //or= || 或者     當第一個條件爲true的時候,就不須要執行第二條件
    var num=3;
    num>1 || console.log(num);//true,後續不執行
    num<1 || console.log(num);//前面爲false,繼續執行,結果3

    //綜合:變量保存年齡,若是滿18週歲,打印"成年人"
    var age=19;
    console.log(age>=18 && "成年人");//成年人

(5)位運算符(瞭解便可)
        在執行運算的時候,計算機會把數據轉成二進制,來進行運算
        按位於 (&),上下兩位都是1,結果是1,不然是0.

    //按位於(&),上下兩位都是1,結果是1,不然是0.
    /*
    011
    101
    ————
    001
    */
    console.log(3&5);//1

        按位或 (|),上下兩位含有1,結果是1,否者是0,

    //按位或  (|),上下兩位含有1,結果是1,否者是0,
    /*
    101
    111
    ————
    111
    */
   console.log(5|7);//7

        按位異或(^) ,上下兩位不一樣爲1,相同爲0.

    // 按位異或(^) ,上下兩位不一樣爲1,相同爲0.
    /*
    101
    111
    ————
    010
    */
    console.log(5^7);//2

        按位右移(>>),刪除二進制的最後一位,成倍減小

   //按位右移(>>),刪除二進制的最後一位,每增長一次右移,結果成倍減小一次
    console.log(8>>1);//4
    console.log(8>>2);//2
    console.log(8>>3);//1

        按位左移(<<),在最後一位增長一位0,成倍增加

    // 按位左移(<<),在最後一位增長一位0,每增長一次左移,結果成倍增加一次
    console.log(5<<1);//10
    console.log(5<<2);//20
    console.log(5<<3);//40

(6)賦值運算符
        =      等於

    //等於
    var a=1;//給a賦值爲1

        +=    加等於

    //加等於
    //運算符的優先級,+號優先於=號
    var a=1;
    //第一種寫法,在原來基礎上+1,把結果賦給a
    a=a+1;
    console.log(a);
    //第二種寫法,在原來基礎上+1,把結果賦給a
    a+=1;
    console.log(a);
    //在賦值運算符中,加等於能夠用於字符串拼接
    var str='a';
    str+='b';
    console.log(str);//'ab'

        -=    減等於

    //減等於
    var a=5;
    //普通寫法
    a=a-1;
    console.log(a);//4

        *=    乘等於

    //乘等於
    //打八折,在原來的基礎上打八折
    var price=1500;
    //賦值運算符寫法
    price*=0.8;
    console.log(price);//1200

        /=    除等於

    //除等於
    //總分數552,求6科平均成績
    var score=552;
    score/=6;
    console.log(score);//92

        %= 取餘等於

    //取餘等於
    //注意:運算符的優先級:先執行而且,再執行或者;
    //聲明變量保存一個年份,判斷這個年份是否爲閏年,結合邏輯短路,若是是閏年就打印閏年
    var year=1999;
    (year%4===0 && year%100!==0 || year%400===0) && console.log("閏年");//false

(7)三目運算符
        一目:一個運算符鏈接一個數據
                 a++    b--    !c
        二目:一個運算符鏈接兩個數據
                 a+1  a-1  a*1   a/1   a>1  a<1  a=1  a!1等等
        三目:兩個運算符鏈接三個數據
                 條件表達式?表達式1:表達式2
                 若是條件表達式爲ture執行表達式1,
                 若是條件表達式爲false執行表達式2

    //三目運算符
    //根據年齡判斷是否爲成年人
    var age=19;
    age>=18?console.log('成年人    '):console.log('未成年人');//成年人    
    //聲明兩個變量來保存用戶名和密碼,若是用戶名爲root,而且密碼爲123456,打印成功,不然打印失敗
    var uname='rot';
    var pwd='123456';
    (uname==='root' && pwd==='123456') ? console.log('登陸成功'):console.log('登陸失敗');//登陸失敗
    var uname1='root';
    var pwd1='123456';
    (uname1==='root' && pwd1==='123456') ? console.log('登陸成功'):console.log('登陸失敗');//登陸成功
相關文章
相關標籤/搜索