資料型別的轉化分為兩種: 自動轉化和強制轉化
一 . 自動轉化: 是計算機程式,自動完成的轉化
1. 布爾型別的自動轉化: 也就是在執行 if 判斷時 ,其他資料型別會自動轉化為布爾型別
轉化原則:
1> 轉化為 false : 0 '' undefined null NaN 這五種情況轉化為false
如: '' 空字串 轉化為 false

2> 除了以上五種,其他的所有 都會轉化為 true
如:

2.字串的自動轉化: 在執行字串拼接時, 會將其他資料型別轉化為字串型別.
執行字串拼接, 拼接符號 +號 兩側 應該都是 字串型別
如果是其他型別 JavaScript程式,會自動轉化為 字串型別,再執行拼接
轉化原則:
1) 布林值 true 轉化為 字串 'true'
布林值 false 轉化為 字串 'fasle'
undefined 轉化為 字串 'undefined'
unll 轉化為 字串 'null'
數值 轉化為 將數值決議轉化為 對應的 純數字的字串
2) 三個特殊的轉化:
1> 陣列 ---> 將 [] 中的內容,轉化為字串的形式,進行拼接
如: var str9 = '北京' + [1,2,3,4,5] ;
console.log(str9);
2> 物件 ---> 任何物件,任何內容,都會轉化為 [object Object] 固定的內容形式
如: var str10 = '北京' + {name:'張三' , age:18 , sex:'男'} ;
console.log(str10);
3> 函式 ---> 將所有的程式代碼,轉化為字串
如: var str11 = '北京' + function fun(){console.log(123)};
console.log(str11);
3. 數值的自動轉化:( 在執行數學運算時 會觸發資料型別的自動轉化 )
轉化原則:
1> 布爾型別 : true ---> 1
false ---> 0
undefined : 轉化為 NaN
null : 轉化為 0
2> 字串 :
如果整個字串,是純數字字串,或者符合科學計數法 ---> 轉化為對應的數值
如果字串內有不符合數字規范的內容 ---> 轉化為 NaN
3> 陣列,物件,函式
如果是 + 加號 : 執行的是字串拼接效果
按照這些資料型別轉化為字串的原則來轉化
如果是 其他形式的運算 : 執行結果都是 NaN
二 強制轉化 : 是程式員強行完成的轉化
1. 布爾型別的強制轉化: 就是使用JavaScript中定義好的 方法/函式 Boolean( 資料/變數 )
注: Boolean() 這個方法 不會改變 變數中存盤的原始數值
轉化原則與自動轉化原則相同:
false : 0 , ' ' , undefined , null , NaN
true : 其他資料,都轉化為true
2. 字串的強制轉化:
方法1: 變數.toString(進制型別)
將數值強制轉化為字串,并且可以設定轉化的進制
.toString( ) 之前 , 不能直接寫數值,必須是寫成變數的形式
進制常用的數值是 2 8 16
可以設定的范圍即進制范圍是 : 2-36 (10個數值+26個英文字母)
最少是2進制,最多是36進制
方法2: String( 變數 / 資料 )
將變數或者資料,轉化為字串
原則按照自動轉化的原則來執行
不會改變變數中存盤的原始數值
如: var int = 2e5;
console.log( String(int) );
console.log( int );
3. 數值的強制轉化
方法1: Number(變數/數值)
將其他型別強制轉化為數值型別,轉化原則與自動轉化選擇相同
方法2: parseInt(變數 / 資料)
是獲取變數或者資料的整數部分
從資料的左側起, 決議獲取整數內容
1> 陣列執行,是獲取數值部分, 也就是沒有 [ ] 的部分.
如: 1,2,3,4,5 整數部分是 1 , 1之后是逗號, 逗號不是整數, 其之后的部分也就不算整數.
獲取第一個數值的整數部分,如果有就獲取,如果沒有,結果是NaN
事例: console.log( parseInt( [1,2,3,4,5] ) ); // 結果是 1
console.log( parseInt( [null,2,3,4,5] ) ); // 結果是 NaN
2> 如果是整數就直接獲取,如果是浮點數,或者科學計數法,就獲取整數部分
如: console.log( parseInt( 100 ) ); // 整數是直接獲取
console.log( parseInt( 0.0123 ) ); //浮點數是獲取整數部分
console.log( parseInt( 3.123456e3 ) ); // 科學計數法是決議之后,獲取整數部分
3> 字串
如果是純數字的字串
console.log( parseInt( '100' ) ); // 與數字的結果相同
console.log( parseInt( '0.0123' ) ); // 與數字的結果相同
如果是一個字串,從左側開始,找整數部分,第一個是3,第二個是點,點不是整數,因此整數部分就是3
console.log( parseInt( '3.123456e3' ) ); //結果是3
console.log( parseInt( '3abc' ) ); //結果是3
console.log( parseInt( '3.123' ) ); //結果是3
方法3: parseFloat( 變數 / 數值 )
1> 獲取浮點數部分
如: console.log( parseFloat(true) );
console.log( parseFloat(false) );
console.log( parseFloat(null) );
console.log( parseFloat(undefined) );
console.log( parseFloat( {name:'zhangsan'} ) );
console.log( parseFloat( function fun(){console.log('abc')} ) );
以上輸出結果都是 NaN
2> 數值 ( 整數,浮點數,都會完整獲取 )
如: console.log( parseFloat(100) ); //輸出結果是 100
console.log( parseFloat(100.1234) ); //輸出結果是 100.1234
console.log( parseFloat(1.234567e3) ); //輸出結果是 1234.567
3> 字串 ( 從字串的左側起 , 決議符合浮點數的部分 )
如: console.log( parseFloat( '100' ) ); // 與數字的結果相同 輸出結果是 100
console.log( parseFloat( '0.0123' ) ); // 與數字的結果相同 輸出結果是 0.0123
console.log( parseFloat( '3.123456e3' ) ); // 科學技術法會決議 輸出結果是 3123.456
console.log( parseFloat( '3.1223abc' ) ); // 輸出結果是 3.1223
console.log( parseFloat( '3.123' ) ); // 輸出結果是 3.123
以上就是資料型別的轉化的兩種轉化方式:自動轉化和強制轉化,有問題歡迎大家一起討論哦~~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/79745.html
標籤:JavaScript
