成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

CarlBenjamin / 2772人閱讀

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

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

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

可以用toString這個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并沒有toString這個API,所以會報錯。不可以這樣使用。

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

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

全局方法

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

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

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

nullundefined也可以使用這個全局方法。

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

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

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

console.log(1);
//1

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

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

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

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

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

1 + ""
//"1"

true + ""
//"true"

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

null + ""
//"null"

undefined + ""
//"undefined"

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

"1" + 1
//"11"

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

這樣使用會出現(xiàn)意想不到的結(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ù)期某個位置應(yīng)該是布爾值,會將該位置上現(xiàn)有的值自動轉(zhuǎn)為布爾值。
轉(zhuǎn)換規(guī)則是除了下面七個值被轉(zhuǎn)為false,其他值都視為true。

0

null

undefined

NaN

false

""

""

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

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

!!取反兩次,對應(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

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

parseInt("011");
//11

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

而且從第一位開始返回,若遇到無法返回的值,則自動結(jié)束。
若一位也無法返回,則為NaN。

parseInt("1s");
//1

parseInt("ss");
//NaN



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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100167.html

相關(guān)文章

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

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

    ZoomQuiet 評論0 收藏0
  • 淺談JavaScript的淺拷貝與深拷貝

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

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

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

    atinosun 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<