一隻前端小白的JS note

RoOK1E發表於2018-08-07

資料型別轉換

轉換為String

 強制型別轉換
  1.  toString()方法:

             var  a=10;
             a=a.toString();

如果呼叫undefined和null的toString()會報錯

    2.String()函式

    var a=10;
    a=String(a)

對於具有toString()方法型別,String()也會呼叫它的toSting()來進行轉換
對於null 直接將其 轉換為 "null"
對於undefined 直接將其 轉換為 "undefined"

 隱式型別轉換
  通過為任意型別加上一個空串的形式將其轉換為字串
    var a=10;
    a=a+"";

轉換為Number

 強制型別轉換
 1.Number()函式

   var num="10";
   num=Number(num);

轉換的情況:

  字串: 如果是一個合法的數字  則直接轉換成對應的數字
         如果不是一個合法的數字 則轉換成NaN
         如果是空字串和純空格的字串 則轉換為0
         
         
  布林值: true轉換成1   false變成0
   
  null:null直接轉換為0
  
  undefined:undefined轉換為NaN    
  
  
  2.parseInt()函式    
   將一個字串中的有效整數位提取出來
   
  3. parseFloat()函式
   將一個字串中的有效小數提取出來
   
   
   
  隱式型別轉換 
  使用一元運算子的"+"將任意的資料型別轉換為Number

var a="10";
a=+a;

轉換為Boolean

 強制型別轉換
 呼叫Boolean()函式
var a=1;
a=Boolean(a);

轉換的情況:

  String  除了空字串  其餘都是true
  Number  除了0和NaN   其餘都是true
  null和undefined都為false

隱式型別轉換
可以通過對任意型別的資料取反兩次 將其轉換為布林值

   var a=10;
   a=!!a;

運算子(操作符)

通過運算子可以一個或多值進行運算

算數運算子

        +
        -
        *
        /
        %
       規則和數學中的規則一致
       
       

一元運算子

 +(正號) -(負號)  ++   --  !    typeof  instanceof delete

二元運算子

 +(加號) -(減號) /  %  >  <   >=  <=  ==  !=  === !==   &&  ||   +=    -=  /=    %=  
 

三元運算子

?:    

加法運算子
如果兩個運算元都是數字的話 進行加法計算
console.log(1+1)   //2
如果運算元中出現字串 進行字串拼接
console.log(1+'個蘋果')  //1個蘋果

除了加法運算子  其他算數運算子都將字串型別自動轉換成number型別 再進行計算
console.log('2'-'2')   //0
求餘運算子
計算兩個數整除後的餘數   求餘的結果是正數還是負數,與第一個運算元的正負有關
console.log(5%3)   //2
console.log(-5%3)  //-2
console.log(5%-3)   //2
console.log(-5%-3)  //-2
++
    自增
     自增可以使變數在原來的基礎自增1
     自增分成前++(++a) 和 後++(a++)
     無論是++a 還是 a++都會使原變數立即自增1
     不同的是++a 和 a++的值不同
     ++a是變數自增後的值,新值
     a++是變數自增前的值,原值    
--
   自減
    自減可以使變數在原來的基礎自減1
    自減分成前--(--a) 和 後--(a--)
    無論是--a 還是 a--都會使原變數立即自減1
    不同的是--a 和 a--的值不同
    --a是變數自減後的值,新值
    a--是變數自減前的值,原值
相等與不等

    ==與!=   只比較運算元的值  不比較型別

   consolel.log(10 =='10')   //true

   console.log(undefined == null)   //true   都表示空  所以輸出為true
全等與全不等

    ===和!== 既比值 又比較型別
    console.log(10 ==='10')    //false 
    console.log(10 !=='10')    //true
isNaN()函式

    用於判斷引數是否是非數字值  多用於檢測轉換後的結果是否為合法的數字值
    注:NaN與任何值進行比較 都是false   不能使用 == 或者 === 運算子判斷  只能用isNaN()函式

   console.log(isNaN(parseInt('123abc')))    //true
   console.log(isNaN('123.456abc'))    //true

邏輯運算子

! 邏輯非

        可以對一個布林值進行取反操作
        如果對一個非布林值進行邏輯非運算,會先將其轉換為布林值,然後再取反
        利用這個特點,可以為指定的值取兩次反,來將其轉換為布林值。

&& 邏輯與

        可以對符號兩側的值做與運算
        如果對非布林值做與運算,會將其轉換為布林值然後再運算,
        最終會返回原值
        如果第一個值是false,則直接返回第一個值
        如果第一個值是true,則返回第二個值
        js中的與運算是短路的與,如果第一個值是false,則不看第二個值    

|| 邏輯或

        可以對符號兩側的值做或運算
        如果對非布林值做或運算,會將其轉換為布林值然後再運算,
        最終會返回原值
        如果第一個值是true,則直接返回第一個值
        如果第一個值是false,則返回第二個值
        js中的或運算是短路的或,如果第一個值是true,則不看第二個值


賦值運算子

    =
     =  將符號右側的值賦值給符號左側的變數
    +=
         a += 5 相當於 a = a+5
    -=    同+
    *=    同+
    /=    同+
    %=    同+

條件運算子(三元運算子)

    ?:
     語法:
        條件表示式?語句1:語句2
        
    -執行流程:
            三目運算子在執行時,會先對條件表示式進行求值判斷,
            如果判斷結果為true,則執行語句1,並將執行結果返回
            如果判斷結果為false,則執行語句2,並將執行結果返回
            
            
            

    var salary =45000;
     
    var result=salary  >30000 ? console.log('中產階級')   : console.log(' 小康');

條件運算子巢狀


    條件運算子中 每個表示式可以為另一個條件表示式  為條件運算子巢狀
    
    var age=24;
    var result=age >=60 ? console.log('老年') :(age >=30 ? console.log('中年'):(age >18 ?console.log('成年'):console.log('未成年')) )
    
    程式碼執行順序:
         age>=60  不符合條件繼續執行 age >=30 不符合條件繼續執行 age >18 滿足條件 

相關文章