DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 老生常談javascript的類型轉換
老生常談javascript的類型轉換
編輯:關於JavaScript     

目錄:

1 : 偽對象 
2 : 轉換為字符串 
3 : 數字轉字符串 
4 : 轉換為數字 
5 : 轉換為Boolean 
6 : Number()和parseInt()的區別 
7 : String()和toString()的區別

1 : 偽對象

偽對象:javascript是一門很有意思的語言,即便是基本類型,也是偽對象,所以他們都有屬性和方法。

變量a的類型是字符串,通過調用其為偽對象的屬性length獲取其長度 。

<script>
 var a="hello javascript"; 
 document.write("變量a的類型是:"+(typeof a));
 document.write("<br>");
 document.write("變量a的長度是:"+a.length);
</script>

運行效果:
變量a的類型是:string
變量a的長度是:16

2 : 轉換為字符串

無論是Number,Boolean還是String都有一個toString方法,用於轉換為字符串

<script>
 var a=10; 
 document.write("數字 "+a+" 轉換為字符串"+a.toString());
 document.write("<br>");

 var b=true; 
 document.write("布爾 "+b+" 轉換為字符串"+b.toString());
 document.write("<br>");

 var c="hello javascript"; 
 document.write("字符串 "+c+" 轉換為字符串 "+c.toString());
 document.write("<br>");

</script>

運行效果:
數字 10 轉換為字符串10
布爾 true 轉換為字符串true
字符串 hello javascript 轉換為字符串 hello javascript

3 : 數字轉字符串

Number轉換為字符串的時候有默認模式和基模式兩種

<script>
 var a=10; 
 document.write('默認模式下,數字10轉換為十進制的'+a.toString()); //默認模式,即十進制
 document.write("<br>"); 

 document.write('基模式下,數字10轉換為二進制的'+a.toString(2)); //基模式,二進制
 document.write("<br>"); 
 
 document.write('基模式下,數字10轉換為八進制的'+a.toString(8)); //基模式,八進制
 document.write("<br>"); 

 document.write('基模式下,數字10轉換為十六進制的'+a.toString(16)); //基模式,十六進制
 document.write("<br>"); 

</script>

運行效果:
默認模式下,數字10轉換為十進制的10
基模式下,數字10轉換為二進制的1010
基模式下,數字10轉換為八進制的12
基模式下,數字10轉換為十六進制的a

4 : 轉換為數字

javascript分別提供內置函數 parseInt()和parseFloat(),轉換為數字

注:如果被轉換的字符串,同時又數字和字符構成,那麼parseInt會一直定位數字,直到出現非字符。 所以"10abc" 會被轉換為 10

思考題: 字符串"10abc8" 又會被轉換為多少呢?

<script>
 document.write("字符串的\"10\"轉換為數字的:"+parseInt("10")); //轉換整數
 document.write("<br>");
 document.write("字符串的\"3.14\"轉換為數字的:"+parseFloat("444 3.14"));//轉換浮點數
 document.write("<br>");
 document.write("字符串的\"10abc\"轉換為數字的:"+parseInt("10abc")); //判斷每一位,直到發現不是數字的那一位
 document.write("<br>");

 document.write("字符串的\"hello javascript\"轉換為數字的:"+parseInt("h5555ello javascript")); //如果完全不包含數字,則返

回NaN - Not a Number
 document.write("<br>");

</script>

運行效果:
字符串的"10"轉換為數字的:10
字符串的"3.14"轉換為數字的:444
字符串的"10abc"轉換為數字的:10
字符串的"hello javascript"轉換為數字的:NaN

5 : 轉換為Boolean

使用內置函數Boolean() 轉換為Boolean值
當轉換字符串時:
非空即為true
當轉換數字時:
非0即為true
當轉換對象時:
非null即為true

<script>
 document.write("空字符串''轉換為布爾後的值:"+Boolean("")); //空字符串
 document.write("<br>");
 document.write("非空字符'hello javascript '串轉換為布爾後的值:"+Boolean("hello javascript")); //非空字符串
 document.write("<br>");
 document.write("數字 0 轉換為布爾後的值:"+Boolean(0)); //0
 document.write("<br>");
 document.write("數字 3.14 轉換為布爾後的值:"+Boolean(3.14)); //非0 
 document.write("<br>");
 document.write("空對象 null 轉換為布爾後的值:"+Boolean(null)); //null
 document.write("<br>");
 document.write("非對象 new Object() 轉換為布爾後的值:"+Boolean(new Object())); //對象存在
 document.write("<br>");
</script>

運行效果:
空字符串''轉換為布爾後的值:false
非空字符'hello javascript '串轉換為布爾後的值:true
數字 0 轉換為布爾後的值:false
數字 3.14 轉換為布爾後的值:true
空對象 null 轉換為布爾後的值:false
非對象 new Object() 轉換為布爾後的值:true

6 : Number()和parseInt()的區別 

Number()和parseInt()一樣,都可以用來進行數字的轉換

區別在於,當轉換的內容包含非數字的時候,Number() 會返回NaN(Not a Number)

parseInt() 要看情況,如果以數字開頭,就會返回開頭的合法數字部分,如果以非數字開頭,則返回NaN

<script>
 document.write("通過Number() 函數轉換字符串'123' 後得到的數字:"+Number("123"));  //正常的
 document.write("<br>");
 document.write("通過Number() 函數轉換字符串'123abc' 後得到的數字:"+Number("123abc"));  //包含非數字
 document.write("<br>");
 document.write("通過Number() 函數轉換字符串'abc123' 後得到的數字:"+Number("abc123"));  //包含非數字
 document.write("<br>");

 document.write("通過parseInt() 函數轉換字符串'123' 後得到的數字:"+parseInt("123"));  //正常的
 document.write("<br>");
 document.write("通過parseInt() 函數轉換字符串'123abc' 後得到的數字:"+parseInt("123abc"));  //包含非數字,返回開頭的合法

數字部分
 document.write("<br>");
 document.write("通過parseInt() 函數轉換字符串'abc123' 後得到的數字:"+parseInt("abc123"));  //包含非數字,以非數字開頭,

返回NaN
 document.write("<br>");

</script>

運行效果:

通過Number() 函數轉換字符串'123' 後得到的數字:123
通過Number() 函數轉換字符串'123abc' 後得到的數字:NaN
通過Number() 函數轉換字符串'abc123' 後得到的數字:NaN
通過parseInt() 函數轉換字符串'123' 後得到的數字:123
通過parseInt() 函數轉換字符串'123abc' 後得到的數字:123
通過parseInt() 函數轉換字符串'abc123' 後得到的數字:NaN

7 : String()和toString()的區別

String()和toString()一樣都會返回字符串,區別在於對null的處理
String()會返回字符串"null"
toString() 就會報錯,無法執行

<script>
 var a = null;
 document.write('String(null) 把空對象轉換為字符串:'+String(a)); 
 document.write("<br>"); 
 document.write('null.toString() 就會報錯,所以後面的代碼不能執行'); 
 document.write(a.toString()); 
 document.write("因為第5行報錯,所以這一段文字不會顯示"); 
</script>

運行效果:
String(null) 把空對象轉換為字符串:null
null.toString() 就會報錯,所以後面的代碼不能執行

以上就是小編為大家帶來的老生常談javascript的類型轉換全部內容了,希望大家多多支持~

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved