摘要:關(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
null和undefined并沒(méi)有toString這個(gè)API,所以會(huì)報(bào)錯(cuò)。不可以這樣使用。
var obj = {age : 18}; obj.toString(); //"[object Object]"
object的toString方法并不能得到你想要的結(jié)果。除非你自己設(shè)法去編寫(xiě)一個(gè)自定義函數(shù)。
全局方法使用全局方法window.String,等同于xxx.toString。
window.String(1); //"1" window.String({}); //"[object Object]"
null和undefined也可以使用這個(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。
最簡(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
摘要:中有基本類型和復(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...
摘要:引用數(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...
摘要:隱式類型轉(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...
閱讀 3407·2023-04-26 02:10
閱讀 2978·2021-10-12 10:12
閱讀 4766·2021-09-27 13:35
閱讀 1604·2019-08-30 15:55
閱讀 1138·2019-08-29 18:37
閱讀 3517·2019-08-28 17:51
閱讀 2032·2019-08-26 13:30
閱讀 1297·2019-08-26 12:09