国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

淺談JS中的數據類型轉換

CarlBenjamin / 2761人閱讀

摘要:關于中的各種數據類型的簡單轉換。轉換為布爾值全局方法方法注意要區分空字符串和有空格的字符串。如果預期某個位置應該是布爾值,會將該位置上現有的值自動轉為布爾值。常規轉換取反兩次,對應的布爾值不變。

關于JavaScript中的各種數據類型的簡單轉換。

轉換為字符串 toString

可以用toString這個API將其他數據類型轉換為字符串,其中也有一些特例。

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

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

將數字和布爾值轉化為字符串。

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方法并不能得到你想要的結果。除非你自己設法去編寫一個自定義函數。

全局方法

使用全局方法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可以將數據輸出為字符串。

console.log(1);
//1

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

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

輸出結果的1其實也是"1",這是在Chrome測試臺的輸出結果,沒有按規則顯示而已。
在很多地方,如果需要字符串的數據,會自動調取這個API。

常規轉換

最簡單的轉換方式,與空字符串""相加+

1 + ""
//"1"

true + ""
//"true"

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

null + ""
//"null"

undefined + ""
//"undefined"

+如果左右兩邊有字符串,那總是會盡可能把結果變為字符串。

"1" + 1
//"11"

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

這樣使用會出現意想不到的結果。兩者是等價的。

轉換為布爾值 全局方法

window.Boolean方法

window.Boolean(0);
//false

window.Boolean(1);
//true

window.Boolean({});
//true

注意要區分空字符串和有空格的字符串。

window.Boolean("");
//false

window.Boolean(" ");
//true

如果 JavaScript 預期某個位置應該是布爾值,會將該位置上現有的值自動轉為布爾值。
轉換規則是除了下面七個值被轉為false,其他值都視為true

0

null

undefined

NaN

false

""

""

又叫做falsy值。是在Boolean上下文中認定可以轉化為false的值。

常規轉換

!!取反兩次,對應的布爾值不變。

!!0
//false

!!null
//false

!!{}
//true
轉換為數字

大概有幾種方法

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

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

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

"105" - 0;
//105

+ "105"
//105

+ "-105"
//-105

- "105"
//-105

- (- "105");
//105
關于parseInt

若不寫明進制,則默認為十進制。

parseInt("011");
//11

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

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

parseInt("1s");
//1

parseInt("ss");
//NaN



文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100167.html

相關文章

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

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

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

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

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

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

    atinosun 評論0 收藏0

發表評論

0條評論

CarlBenjamin

|高級講師

TA的文章

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