亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

JavaScript 類型轉(zhuǎn)換

Javascript的變量是松散類型的,它可以存儲(chǔ)Javascript支持的任何數(shù)據(jù)類型,其變量的類型可以在運(yùn)行時(shí)被動(dòng)態(tài)改變。請(qǐng)看示例:


var?n = 10;

n = "hello CSSer!";

n = {};

上面的示例中,首先聲明n變量并初始化其值為10(整數(shù)類型),接著將字符串“hello?CSSer!”賦值給n,接著再賦一個(gè)對(duì)象給它,最后n的類型是對(duì)象類型??梢钥闯鲎兞縩的類型具有動(dòng)態(tài)性,實(shí)際編程中,我們建議不要頻繁改變變量的類型,因?yàn)檫@對(duì)調(diào)試沒(méi)有好處。


JavaScript 數(shù)據(jù)類型

在 JavaScript 中有 5 種不同的數(shù)據(jù)類型:

string

number

boolean

object

function

3 種對(duì)象類型:

Object

Date

Array

2 個(gè)不包含任何值的數(shù)據(jù)類型:

null

undefined

typeof 操作符

你可以使用?typeof?操作符來(lái)查看 JavaScript 變量的數(shù)據(jù)類型。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
    typeof "tom" + "<br>" +
    typeof 3.14 + "<br>" +
    typeof NaN + "<br>" +
    typeof false + "<br>" +
    typeof [1,2,3,4] + "<br>" +
    typeof {name:'john', age:34} + "<br>" +
    typeof new Date() + "<br>" +
    typeof function () {} + "<br>" +
    typeof myCar + "<br>" +
    typeof null;
</script>
</body>
</html>

請(qǐng)注意:

NaN 的數(shù)據(jù)類型是 number

數(shù)組(Array)的數(shù)據(jù)類型是 object

日期(Date)的數(shù)據(jù)類型為 object

null 的數(shù)據(jù)類型是 object

未定義變量的數(shù)據(jù)類型為 undefined

constructor 屬性

constructor?屬性返回所有 JavaScript 變量的構(gòu)造函數(shù)。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = 
    "john".constructor + "<br>" +
    (3.14).constructor + "<br>" +
    false.constructor + "<br>" +
    [1,2,3,4].constructor + "<br>" +
    {name:'john', age:34}.constructor + "<br>" +
    new Date().constructor + "<br>" +
    function () {}.constructor;
</script>
</body>
</html>

? ?


顯式轉(zhuǎn)換

通過(guò)手動(dòng)進(jìn)行類型轉(zhuǎn)換,Javascript提供了以下轉(zhuǎn)型函數(shù):

轉(zhuǎn)換為數(shù)值類型:Number(mix)、parseInt(string,radix)、parseFloat(string)
轉(zhuǎn)換為字符串類型:toString(radix)、String(mix)
轉(zhuǎn)換為布爾類型:Boolean(mix)

1、Number(mix)函數(shù),可以將任意類型的參數(shù)mix轉(zhuǎn)換為數(shù)值類型

其規(guī)則為:

如果是布爾值,true和false分別被轉(zhuǎn)換為1和0

如果是數(shù)字值,返回本身。

如果是null,返回0.

如果是undefined,返回NaN。

如果是字符串,遵循以下規(guī)則:

1)如果字符串中只包含數(shù)字,則將其轉(zhuǎn)換為十進(jìn)制(忽略前導(dǎo)0)

2)如果字符串中包含有效的浮點(diǎn)格式,將其轉(zhuǎn)換為浮點(diǎn)數(shù)值(忽略前導(dǎo)0)

3)如果是空字符串,將其轉(zhuǎn)換為0

4)如果字符串中包含非以上格式,則將其轉(zhuǎn)換為NaN

如果是對(duì)象,則調(diào)用對(duì)象的valueOf()方法,然后依據(jù)前面的規(guī)則轉(zhuǎn)換返回的值。如果轉(zhuǎn)換的結(jié)果是NaN,則調(diào)用對(duì)象的toString()方法,再次依照前面的規(guī)則轉(zhuǎn)換返回的字符串值。

Number("3.14")????// 返回 3.14
Number(" ")???????// 返回 0?
Number("")????????// 返回 0
Number("99 88")???// 返回 NaN


2、parseInt(string,?radix)函數(shù),將字符串轉(zhuǎn)換為整數(shù)類型的數(shù)值。它也有一定的規(guī)則:


忽略字符串前面的空格,直至找到第一個(gè)非空字符

如果第一個(gè)字符不是數(shù)字符號(hào)或者負(fù)號(hào),返回NaN

如果第一個(gè)字符是數(shù)字,則繼續(xù)解析直至字符串解析完畢或者遇到一個(gè)非數(shù)字符號(hào)為止

如果上步解析的結(jié)果以0開頭,則將其當(dāng)作八進(jìn)制來(lái)解析;如果以0x開頭,則將其當(dāng)作十六進(jìn)制來(lái)解析

如果指定radix參數(shù),則以radix為基數(shù)進(jìn)行解析

3、parseFloat(string)函數(shù),將字符串轉(zhuǎn)換為浮點(diǎn)數(shù)類型的數(shù)值

它的規(guī)則與parseInt基本相同,但也有點(diǎn)區(qū)別:字符串中第一個(gè)小數(shù)點(diǎn)符號(hào)是有效的,另外parseFloat會(huì)忽略所有前導(dǎo)0,如果字符串包含一個(gè)可解析為整數(shù)的數(shù),則返回整數(shù)值而不是浮點(diǎn)數(shù)值。

4、toString(radix)方法。除undefined和null之外的所有類型的值都具有toString()方法,其作用是返回對(duì)象的字符串表示

對(duì)象 ? ?操作 ? ?

Array ? ?將?Array?的元素轉(zhuǎn)換為字符串。結(jié)果字符串由逗號(hào)分隔,且連接起來(lái)。 ? ?

Boolean ? ?如果?Boolean?值是?true,則返回?“true”。否則,返回?“false”。 ? ?

Date ? ?返回日期的文字表示法。 ? ?

Error ? ?返回一個(gè)包含相關(guān)錯(cuò)誤信息的字符串。 ? ?

Function ? ?返回如下格式的字符串,其中?functionname?是被調(diào)用?toString?方法函數(shù)的名稱:

function?functionname(?)?{?[native?code]?}

Number ? ?返回?cái)?shù)字的文字表示。 ? ?

String ? ?返回?String?對(duì)象的值。 ? ?

默認(rèn) ? ?返回?“[object?objectname]”,其中?objectname?是對(duì)象類型的名稱。 ? ?

5、String(mix)函數(shù),將任何類型的值轉(zhuǎn)換為字符串,其規(guī)則為:

如果有toString()方法,則調(diào)用該方法(不傳遞radix參數(shù))并返回結(jié)果

如果是null,返回”null”

如果是undefined,返回”undefined”

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<p id="demo"></p>
<script>
var x = 55;
document.getElementById("demo").innerHTML =
    String(x) + "<br>" +
    String(13.3) + "<br>" +
    String(100.99 + 23);
</script>
</body>
</html>

6、Boolean(mix)函數(shù),將任何類型的值轉(zhuǎn)換為布爾值。

以下值會(huì)被轉(zhuǎn)換為false:false、”"、0、NaN、null、undefined,其余任何值都會(huì)被轉(zhuǎn)換為true。


實(shí)例:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>php中文網(wǎng)(php.cn)</title> 
    <script type="text/javascript">
var i="123abc";
    i=parseInt(i);//字符串轉(zhuǎn)整形
    alert(i+","+typeof(i));//輸出:123,number
    i="12.3abc";
    i=parseFloat(i);//字符串轉(zhuǎn)浮點(diǎn)型
    alert(i+","+typeof(i));//輸出:12.3,number(可見不管是int還是float都是number類型)
    i="a123abc";
    i=parseInt(i);//字符串轉(zhuǎn)整形
    alert(i+","+typeof(i));//輸出:NaN,number (由于轉(zhuǎn)換失敗,所以提示“不是一個(gè)數(shù)字,Not a Number”)
    var num=document.getElementById("num").value;
    function showMsg(num)
    {
        for(var i=0;i<num;i++)
        {
            document.write("你好,JavaScript!<br/>");
        }
    }
</script>
</head>
<body>
</body>
</html>




一元運(yùn)算符 +

Operator +?可用于將變量轉(zhuǎn)換為數(shù)字:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">點(diǎn)擊</button>
<p id="demo"></p>
<script>
function myFunction() {
    var y = "5";
    var x = + y;
    document.getElementById("demo").innerHTML =
typeof y + "<br>" + typeof x;
}
</script>
</body>
</html>


繼續(xù)學(xué)習(xí)
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <p id="demo"></p> <script> var x = 55; document.getElementById("demo").innerHTML = String(x) + "<br>" + String(13.3) + "<br>" + String(100.99 + 23); </script> </body> </html>
提交重置代碼