摘要:關(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
null和undefined并沒有toString這個API,所以會報錯。不可以這樣使用。
var obj = {age : 18}; obj.toString(); //"[object Object]"
object的toString方法并不能得到你想要的結(jié)果。除非你自己設(shè)法去編寫一個自定義函數(shù)。
全局方法使用全局方法window.String,等同于xxx.toString。
window.String(1); //"1" window.String({}); //"[object Object]"
null和undefined也可以使用這個全局方法。
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。
最簡單的轉(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
摘要:中有基本類型和復(fù)雜類型的區(qū)分。原型與原型鏈這里,就引入了兩個新的概念。原型對象就是用來存放聲明對象中共有的那部分屬性。而原型對象自身也是一個對象,它也有自己的原型對象。這樣層層上溯,就形成了一個類似鏈表的結(jié)構(gòu),這就是原型鏈。 JavaScript中有基本類型和復(fù)雜類型的區(qū)分。 當(dāng)我們在聲明一個基本類型時: var n1= 1; console.log(n1); //1 這時我們可以用N...
摘要:引用數(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...
摘要:隱式類型轉(zhuǎn)換類型轉(zhuǎn)類型先定義一個類型的變量只要類型跟類型還是類型用號,其他類型都會被轉(zhuǎn)為字符串輸出結(jié)果字符串類型轉(zhuǎn)類型或者類型定義類型的變量與類型的變量前端從測試結(jié)果可以看出,類型在跟數(shù)字類型做乘除減運算時,得到的是數(shù)字類型的值,但是類型必 隱式類型轉(zhuǎn)換 number類型轉(zhuǎn)string類型 //先定義一個number類型的變量 //只要string類型跟boolean類型還是numbe...
閱讀 3274·2023-04-26 02:10
閱讀 2897·2021-10-12 10:12
閱讀 4596·2021-09-27 13:35
閱讀 1533·2019-08-30 15:55
閱讀 1076·2019-08-29 18:37
閱讀 3437·2019-08-28 17:51
閱讀 1971·2019-08-26 13:30
閱讀 1210·2019-08-26 12:09