js數據類型轉換


一、js數據類型分類以及判斷方法:

js有6種數據類型:

  1.  number
  2. string
  3. boolean
  4. function
  5. object 
  6. undefined   

數據類型判斷:

  1. typeof 操作符

  使用 typeof 操作符來查看 JavaScript 變量的數據類型。typeof 返回值有六種可能: "number," "string," "boolean," "object," "function," 和 "undefined."

  請注意:

  • NaN 的數據類型是 number
  • 日期對象Date()、數組對象Array()和null   使用typeof輸出后均為object,因此就無法通過 typeof 來判斷他們的類型
  • 未定義變量的數據類型為 undefined

       實例:

  typeof "John"                 // 返回 string 
  typeof 3.14                   // 返回 number
  typeof NaN                    // 返回 number
  typeof false                  // 返回 boolean
  typeof [1,2,3,4]              // 返回 object
  typeof {name:'John', age:34}  // 返回 object
  typeof new Date()             // 返回 object
  typeof function () {}         // 返回 function
  typeof myCar                  // 返回 undefined (如果 myCar 沒有聲明)
  typeof null   

   2、constructor屬性

  constructor 屬性返回所有 JavaScript 變量的構造函數。可以用它來彌補typeof不能區分Array和Data類型的缺陷

  你可以使用 constructor 屬性來查看對象是否為數組 (包含字符串 "Array"):

  function isArray(myArray) {
      return myArray.constructor.toString().indexOf("Array") > -1;
  }

  你可以使用 constructor 屬性來查看對象是否為日期 (包含字符串 "Date"):

  function isDate(myDate) {
      return myDate.constructor.toString().indexOf("Date") > -1;
  }
 
 二、數據類型轉化

  1、顯式轉化(強制類型轉換)  

              1)全局方法:Number() 轉換為數字, String() 轉換為字符串, Boolean() 轉化為布爾值。(parseInt 和 parseFloat也算)                                          2) toString()方法:

        Date/Number/Boolean對象中均有對應的 toString()方法 可以將相應對象轉化為字符串 

        例如:

 

          obj = new Date()
          obj.toString()    // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W. Europe Daylight Time)
          ps:直接使用Data()也可以輸出相同的字符串

 

    3)Date對象中的getTime()方法可以將Date轉化為Number  

    4)一元運算符“+”可以將 字符串對象/日期對象/布爾對象轉化為數字          

   2、隱式類型轉化

    1)算數運算符會產生隱式類型轉化

      ● “+” 運算符   

   Boolean、Number、String三者任意兩種數據相加,轉化優先順序為:String>Number>Boolean· 

   (如果加號兩邊都是字符串類型,則只是簡單的字符串拼接(數組也一樣);如果只有"+"右邊有數據即類似 +”11“時,所有的數據類型都要轉化為Number類型(數組先轉字符串,再轉數字)) 函數function與參與運算會先轉化為字符串再運算  

      ●“-”、“*”、“/”、%運算符 

   使用減號、乘號、除號、取余運算符運算時,都是將兩邊的數據先轉化為Number,然后再進行運算

   ps:"+"和"-"運算符前面不一定有數據(例如寫成:+“11”也可以),但是"*"、"/"、"%"運算符,運算符兩邊必須都有數據才行,否則報錯  

  2)邏輯運算符

     ●邏輯運算符"&&"、"||"、"!",會將數據轉化為Boolean類型 

         "!"取反運算符會想將數據 轉化為boolean類型,然后再取反; eg: var a = ' '; console.log( !a)  ====> true

   分析:1)先將a轉化為布爾類型,Boolean(a)===>false;2)取反  ==>true

   "&&" 並運算符:從左到右對&&兩側的變量進行布爾判斷,返回第一個布爾值為false的元素,如果不是布爾類型則進行 boolean類型的隱式判斷。(如果遇到這樣的元素,后面的元素就不會執行了!),如果沒有布爾值為false的元素,則返回最后一個元素!記住:是返回這個元素而不是隱式boolean類型判斷后的布爾值!!

    eg:1、1 && 0   ==>  0

      2、2 && a &&false   ==> 報錯:a沒有被定義;

      3、2 && false && a   ==>false,不報錯  因為遇到了false,就返回false,后面的a就不會被判斷了,所以及時a沒有被定義也不會報錯

  "||" 或運算符 的判斷和&&差不多,返回第一個boolean值為true的元素!如果沒有則返回最后一個元素

  3) "==" 相等性判斷符號  會隱式調用Number() 方法  1=="1" ===>true

-

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM