網頁設計實戰之JavaScript(2) -- 詳談變量的數據類型轉換

數據類型轉換就是將一種數據類型轉換成另外一種數據類型。
類型轉換分爲隱含轉換和強制轉換。
隱含轉換在前面一戰中,已介紹。本節着點說明強制轉換。

數據類型有:

  • String 字符串
  • Number 數值
  • Boolean 布爾值
  • null 空值
  • undefined 未定義
  • object 對象
  • function
  • symbol

3 種對象類型:

  • object
  • Date
  • Array

其中String、Number、Boolean、null、undefined屬於基本數據類型而Object屬於引用數據類型。

檢測數據類型:typeof 操作符

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                   // 返回 object

常有 3 種方式的轉換:

  • 轉換爲字符串類型
  • 轉換成數字型
  • 轉換成布爾類型

JS是弱類型語言,變量的數據類型是由變量值的數據類型決定的。

一、轉換爲字符串

方式 說明 案例
toString() 轉換爲字符串 var num=1;num.toString();
String() 強制轉換 轉換爲字符串 var num=1;String(num);

(一)、使用 toString( )方法

只適用Number、Boolean類型的數據,Null和Undefined類型數據會報錯,並不適用。

var num = 123;
console.log(num);
console.log(typeof num);

var str=num.toString();
console.log(str);

(二)調用 String() 函數

語法:String(被轉換對象)

  • 使用String()做 強制轉換的時候,對於Number、Boolean類型的數據實際上就是調用toString( )方法。
  • 對於null和undefined,就不會調用toString( )方法,它會直接將 null 轉化爲 “null” ,將 undefined 轉化爲 “undefined”
var num = 123;
console.log(String(num));
console.log(typeof String(num));

二、轉換爲數字型

方式 說明 案例
parseInt(串) 轉換成整數數值型 var num=parseInt(“123”);
parseFloat(串) 轉換爲浮點數值型 var num=parseFloat(“12.12”);
Number() 強制轉換 轉化爲數值型 var num=Number(“1312”);

(一)parseInt() 函數轉換爲數值型

parseInt( )函數可以將字符串中有效的整數內容提取出來,將字符型轉換爲 數字型的;

parseInt( )函數在解析字符串的時候按照從左到右的順序

console.log(parseInt('32.1'));  // 3 取整
console.log(parseInt('123aba'));  // 會取到字符串中的整數部分,從左向右
console.log(parseInt('m111px')); // NaN

(二)parseFloat() 函數轉換爲數值型

parseFloat( ) 函數可以獲得有效的小數,並且將字符型轉換爲數字型。

parseFloat( )函數在解析字符串的時候按照從左到右的順序,不能解析除了數字以外的文本。

console.log(parseFloat('3.1'));  //3.1
console.log(parseFloat('123bbbb'));  //去掉後面部分,只保留數字
console.log(parseFloat('m123ccc'));  //NaN
  • 如果對非String類型數據使用parseInt( ) 或是parseFloat( ) ,它會現將其轉化爲String,然後再進行操作。

  • 由於 parseInt( ) 或是parseFloat( ) 無法解析非數字類型的字符,所以輸出 NaN,但是數據類型還是變爲 number 數字類型。

(三)使用Number() 函數(強制轉換)

調用 Number() 函數使其他類型的數據轉換成數值型

1、當需要轉換的字符串引號引的不是數字

var abc=Number('this one');
console.log(abc);console.log(typeof abc);

2、字符串→Number 轉換情況:

- 如果是純數字的字符串,直接將其轉換爲數字;

- 如果字符串中有非數字內容,則轉換爲NAN(Not A Number);

- 如果字符串是一個空串或是一個全部由空格組成的字符串,則轉換爲0。

3、Boolean值→Number 轉換情況:

- 如果是true,轉換爲1;

- 如果是false,轉換爲0。

4、null值→Number 轉換情況:

如果是null(空值),轉換爲0。

5、undefined→Number 轉換情況:

如果是undefined,轉換爲NAN(Not A Number)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章