js中的類型轉換


先介紹一下 typeof 的使用方法:

typeof(mix)   或者  typeof  mix

其中 mix 可以是任何數據類型

js有六種數據類型:

五種簡單數據類型,又叫基本數據類型,分別為:Number,String,Boolean,Null,Undefined;

一種基本數據類型:Object

typeof 的返回值有六種:

number、string、boolean、object、 function和underfined

注意:返回值是一個字符串類型

特別的:

  • typeof(null)==="object";//true
  • typeof(NaN)==="number";//true

類型轉換:

一、顯示類型轉換

  1. Number(mix)  :把mix轉化成數字類型  可以轉為數字的就轉化為相應的數字,不能轉化的就轉為NaN        其中:
    Number(true) //1;Number(false)//0;Number(null) //0;Number(undefined) //NaN
  2. parseInt(mix,radix) :把mix轉化成整數 除了數字和能轉化為數字的字符串,其他都轉化為NaN,當mix為字符串時,則從第一位一直到非數字截止,即該方法可以截斷                                                                                                  radix是將mix看成radix進制  來進行轉化  若有小數部分則是直接去掉  

    注意:parseInt(true) //NaN; parseInt(false) //NaN;在把字符串轉化為數字時,parseInt()可以截斷,但Number()不能  =》  parseInt("123qqq")//123;Number("123qqq")//NaN

  3. parseFloat(number) :轉化成 浮點類型  從一位開始看,到除了第一個點以外的非數字位截止
  4. Boolean(mix) : 轉化為boolean類型
  5. String(mix) :轉化為字符串類型

  mix.toString(radix)  與String(mix)用法不同   且undefined和null不能使用  mix.toString();    radix是目標值的進制   將mix轉化成radix進制。

注:如將二進制10100轉化為16進制 

過程是 先parseInt()轉化為10進制  然后在toString()轉化為16進制

var num=10100;

var test=parseInt(num,2);

num.toString(16);

2、隱式類型轉化(內部隱式的調用的都是顯示類型的方法)

    1. isNaN():內部隱式調用Number()進行類型轉化,再判斷Number()返回的值是否是NaN。如:isNaN(null)//false   isNaN(underfined)//true
    2. ++(加加)    --(減減)  +(正)  - (負):內部隱式調用Number()轉化后再進行相應計算
    3. +(加號)  當加號兩邊有一個是字符串的話,就會調用String,然后進行字符串的拼接
    4. -    *    /    %    內部隱式調用Number()進行類型后再計算
    5. <(小於)    >(大於)      <=(小於等於)     >=(大於等於)    字符串和數字比  會調用Number   轉化為數字
    6. ==       !=           1==‘1’//true         undefined==null     1>2<3;//true      NaN==NaN;//false NaN不等於任何東西 包括本身
    7. &&(與)   ||(或)    !(非)    &&    ||  雖然有轉化 但返回的依然是原值

      &&:先看第一個表達式轉化成布爾值的值,如果為真,那么看第二個表達式轉化為布爾值的值,。。。。依次進行,直到碰到假;如果只有兩個表達式,則會在第一個表達式轉化為布爾值為真時,直接返回第二個表達式的值;否則返回第一個表達式的值進行賦值

      var a = 1 && 2+2;//4

      var b = 0 && 2+2;//0

      ||:與&&類似,但先看第一個表達式轉化為布爾值后的值,如果為真,直接返回第一個表達式的值,如果為假,則接着往下進行判斷

      判斷真假只是決定是否接着“往下走”,但返回的仍是其本身的值,而不是轉化的布爾值

注:  使用未聲明的變量只有一種情況 不報錯  就是   typeof(a);//undefined   

因為 typeof  返回的是一個字符串            typeof(typeof(a));//String   【面試題】

一些示例:

typeof(a);//undefined
typeof(undefined);//undefined
typeof(NaN);//number
typeof(null);//object
var a="123abc"; typeof(+a);//numberr
typeof(!!a);//boolean
typeof(a+"");//string
1=="1";//true NaN==NaN;//false NaN==undefined;//false ''11''+11;//1111 1==='1';//false parseInt('123abc');//123 typeof(typeof(a));//string

 


免責聲明!

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



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