1. 程式人生 > >js中的型別轉換

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
型別轉換:
一、顯示型別轉換
Number(mix) :把mix轉化成數字型別 可以轉為數字的就轉化為相應的數字,不能轉化的就轉為NaN 其中:
Number(true) //1;Number(false)//0;Number(null) //0;Number(undefined) //NaN
parseInt(mix,radix) :把mix轉化成整數 除了數字和能轉化為數字的字串,其他都轉化為NaN,當mix為字串時,則從第一位一直到非數字截止,即該方法可以截斷 radix是將mix看成radix進位制 來進行轉化 若有小數部分則是直接去掉
注意:parseInt(true) //NaN; parseInt(false) //NaN;在把字串轉化為數字時,parseInt()可以截斷,但Number()不能 =》 parseInt(“123qqq”)//123;Number(“123qqq”)//NaN

parseFloat(number) :轉化成 浮點型別 從一位開始看,到除了第一個點以外的非數字位截止
Boolean(mix) : 轉化為boolean型別
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、隱式型別轉化(內部隱式的呼叫的都是顯示型別的方法)
isNaN():內部隱式呼叫Number()進行型別轉化,再判斷Number()返回的值是否是NaN。如:isNaN(null)//false isNaN(underfined)//true
++(加加) --(減減) +(正) - (負):內部隱式呼叫Number()轉化後再進行相應計算
+(加號) 當加號兩邊有一個是字串的話,就會呼叫String,然後進行字串的拼接

    • / % 內部隱式呼叫Number()進行型別後再計算
      <(小於) >(大於) <=(小於等於) >=(大於等於) 字串和數字比 會呼叫Number 轉化為數字
      == != 1==‘1’//true undefinednull 1>2<3;//true NaN
      NaN;//false NaN不等於任何東西 包括本身
      &&(與) ||(或) !(非) && || 雖然有轉化 但返回的依然是原值
      &&:先看第一個表示式轉化成布林值的值,如果為真,那麼看第二個表示式轉化為布林值的值,。。。。依次進行,直到碰到假;如果只有兩個表示式,則會在第一個表示式轉化為布林值為真時,直接返回第二個表示式的值;否則返回第一個表示式的值進行賦值

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
//前端全棧交流學習圈
//866109386
1=="1";//true
NaN==NaN;//false
NaN==undefined;//false
''11''+11;//1111
1==='1';//false

parseInt('123abc');//123
typeof(typeof(a));//string