成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

淺談JS中的數(shù)據(jù)類型轉(zhuǎn)換

CarlBenjamin / 2828人閱讀

摘要:關(guān)于中的各種數(shù)據(jù)類型的簡(jiǎn)單轉(zhuǎn)換。轉(zhuǎn)換為布爾值全局方法方法注意要區(qū)分空字符串和有空格的字符串。如果預(yù)期某個(gè)位置應(yīng)該是布爾值,會(huì)將該位置上現(xiàn)有的值自動(dòng)轉(zhuǎn)為布爾值。常規(guī)轉(zhuǎn)換取反兩次,對(duì)應(yīng)的布爾值不變。

關(guān)于JavaScript中的各種數(shù)據(jù)類型的簡(jiǎn)單轉(zhuǎn)換。

轉(zhuǎn)換為字符串 toString

可以用toString這個(gè)API將其他數(shù)據(jù)類型轉(zhuǎn)換為字符串,其中也有一些特例。

var a = 1;
a.toString;
//"1"

var b = true;
b.toString;
//"true"

將數(shù)字和布爾值轉(zhuǎn)化為字符串。

var c = null;
c.toString;
//Uncaught TypeError: Cannot read property "toString" of null

var d = undefined;
d.toString;
//Uncaught TypeError: Cannot read property "toString" of undefined

nullundefined并沒(méi)有toString這個(gè)API,所以會(huì)報(bào)錯(cuò)。不可以這樣使用。

var obj = {age : 18};
obj.toString();
//"[object Object]"

objecttoString方法并不能得到你想要的結(jié)果。除非你自己設(shè)法去編寫(xiě)一個(gè)自定義函數(shù)。

全局方法

使用全局方法window.String,等同于xxx.toString。

window.String(1);
//"1"

window.String({});
//"[object Object]"

nullundefined也可以使用這個(gè)全局方法。

window.String(null);
//"null"

window.String(undefined);
//"undefined"
console.log

console.logAPI可以將數(shù)據(jù)輸出為字符串。

console.log(1);
//1

這里console.log中的1其實(shí)是"1",等同于

console.log((1)toString);
//1

輸出結(jié)果的1其實(shí)也是"1",這是在Chrome測(cè)試臺(tái)的輸出結(jié)果,沒(méi)有按規(guī)則顯示而已。
在很多地方,如果需要字符串的數(shù)據(jù),會(huì)自動(dòng)調(diào)取這個(gè)API。

常規(guī)轉(zhuǎn)換

最簡(jiǎn)單的轉(zhuǎn)換方式,與空字符串""相加+

1 + ""
//"1"

true + ""
//"true"

var obj = {}
obj + ""
//"[object Object]"

null + ""
//"null"

undefined + ""
//"undefined"

+如果左右兩邊有字符串,那總是會(huì)盡可能把結(jié)果變?yōu)樽址?/p>

"1" + 1
//"11"

(1)toString() + "1"
//"11"

這樣使用會(huì)出現(xiàn)意想不到的結(jié)果。兩者是等價(jià)的。

轉(zhuǎn)換為布爾值 全局方法

window.Boolean方法

window.Boolean(0);
//false

window.Boolean(1);
//true

window.Boolean({});
//true

注意要區(qū)分空字符串和有空格的字符串。

window.Boolean("");
//false

window.Boolean(" ");
//true

如果 JavaScript 預(yù)期某個(gè)位置應(yīng)該是布爾值,會(huì)將該位置上現(xiàn)有的值自動(dòng)轉(zhuǎn)為布爾值。
轉(zhuǎn)換規(guī)則是除了下面七個(gè)值被轉(zhuǎn)為false,其他值都視為true

0

null

undefined

NaN

false

""

""

又叫做falsy值。是在Boolean上下文中認(rèn)定可以轉(zhuǎn)化為false的值。

常規(guī)轉(zhuǎn)換

!!取反兩次,對(duì)應(yīng)的布爾值不變。

!!0
//false

!!null
//false

!!{}
//true
轉(zhuǎn)換為數(shù)字

大概有幾種方法

window.Number("105");
//105

window.parseInt("105",10);
//105
//10表示進(jìn)制

window.parseFloat("1.05");
//1.05

"105" - 0;
//105

+ "105"
//105

+ "-105"
//-105

- "105"
//-105

- (- "105");
//105
關(guān)于parseInt

若不寫(xiě)明進(jìn)制,則默認(rèn)為十進(jìn)制。

parseInt("011");
//11

parseInt("011",8);
//9

而且從第一位開(kāi)始返回,若遇到無(wú)法返回的值,則自動(dòng)結(jié)束。
若一位也無(wú)法返回,則為NaN。

parseInt("1s");
//1

parseInt("ss");
//NaN



文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/100167.html

相關(guān)文章

  • 淺談:快速理解JS的原型與原型鏈

    摘要:中有基本類型和復(fù)雜類型的區(qū)分。原型與原型鏈這里,就引入了兩個(gè)新的概念。原型對(duì)象就是用來(lái)存放聲明對(duì)象中共有的那部分屬性。而原型對(duì)象自身也是一個(gè)對(duì)象,它也有自己的原型對(duì)象。這樣層層上溯,就形成了一個(gè)類似鏈表的結(jié)構(gòu),這就是原型鏈。 JavaScript中有基本類型和復(fù)雜類型的區(qū)分。 當(dāng)我們?cè)诼暶饕粋€(gè)基本類型時(shí): var n1= 1; console.log(n1); //1 這時(shí)我們可以用N...

    ZoomQuiet 評(píng)論0 收藏0
  • 淺談JavaScript的淺拷貝與深拷貝

    摘要:引用數(shù)據(jù)類型是存放在堆內(nèi)存中的,變量實(shí)際上是一個(gè)存放在棧內(nèi)存的指針,這個(gè)指針指向堆內(nèi)存中的地址。棧和堆的區(qū)別其實(shí)淺拷貝和深拷貝的主要區(qū)別就是數(shù)據(jù)在內(nèi)存中的存儲(chǔ)類型不同。這里,對(duì)存在子對(duì)象的對(duì)象進(jìn)行拷貝的時(shí)候,就是深拷貝了。 數(shù)據(jù)類型 在開(kāi)始拷貝之前,我們從JavaScript的數(shù)據(jù)類型和內(nèi)存存放地址講起。數(shù)據(jù)類型分為基本數(shù)據(jù)類型 和引用數(shù)據(jù)類型 基本數(shù)據(jù)類型主要包括undefin...

    娣辯孩 評(píng)論0 收藏0
  • 淺談隱式類型轉(zhuǎn)換與顯示類型轉(zhuǎn)換的那些事

    摘要:隱式類型轉(zhuǎn)換類型轉(zhuǎn)類型先定義一個(gè)類型的變量只要類型跟類型還是類型用號(hào),其他類型都會(huì)被轉(zhuǎn)為字符串輸出結(jié)果字符串類型轉(zhuǎn)類型或者類型定義類型的變量與類型的變量前端從測(cè)試結(jié)果可以看出,類型在跟數(shù)字類型做乘除減運(yùn)算時(shí),得到的是數(shù)字類型的值,但是類型必 隱式類型轉(zhuǎn)換 number類型轉(zhuǎn)string類型 //先定義一個(gè)number類型的變量 //只要string類型跟boolean類型還是numbe...

    atinosun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<