這篇文章主要講解了“javascript如何把變量轉(zhuǎn)換為字符串”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“javascript如何把變量轉(zhuǎn)換為字符串”吧!

創(chuàng)新互聯(lián)建站是一家專業(yè)提供米林企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為米林眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
js變量轉(zhuǎn)為字符串的方法:1、使用“value.toString()”語句,toString()可以將js值(null和undefined除外)轉(zhuǎn)換為字符串;2、使用“"" + value”語句;3、使用“String(value)”語句。
本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。
javascript將變量轉(zhuǎn)換為字符串的3種方法如下:
value.toString()
"" + value
String(value)
當(dāng)value為null或者undefined時(shí),第1種方法就不行了。而方法2和方法3基本上是一樣的。
""+value: 將value與空字符串相加,即可將其轉(zhuǎn)換為字符串。這種方法其實(shí)是一種稍微晦澀的技巧,可能會(huì)讓別人難于理解開發(fā)者的意圖。不過,這一點(diǎn)見仁見智,有些人偏愛這種方法。
String(value): 這種方法非常清晰:使用String()函數(shù)將value轉(zhuǎn)換為字符串。不過,String()有兩種不同用法,容易混淆,尤其對(duì)于Java開發(fā)者來說。當(dāng)String()和運(yùn)算符new一起作為構(gòu)造函數(shù)使用時(shí),它返回一個(gè)新創(chuàng)建的String對(duì)象;當(dāng)不用new運(yùn)算符調(diào)用String()時(shí),它只把value轉(zhuǎn)換成原始的字符串。這兩者是非常不同的:
> String("Fundebug") === new String("Fundebug")
false
> typeof String("Fundebug")
'string'
> String("Fundebug") instanceof String
false
> typeof new String("Fundebug")
'object'
> new String("Fundebug") instanceof String
true事實(shí)上,將String()作為構(gòu)造函數(shù)使用并不常見,因此僅使用它來轉(zhuǎn)換字符串就好了。
“”+value與String(value)的細(xì)微差別
""+value與String(value)都可以將value轉(zhuǎn)換為字符串,它們是如何做到的呢?事實(shí)上,它們雖然結(jié)果相同,但是方法稍有區(qū)別。
將primitive基本類型轉(zhuǎn)換為字符串
兩種方法都使用內(nèi)部函數(shù)ToString()將primitive基本類型轉(zhuǎn)換為字符串。ToString()函數(shù)在ECMAScript 5.1 (§9.8)中定義了,但是并不能直接使用,因此稱作內(nèi)部函數(shù)。下面的表格顯示了ToString()函數(shù)如何將primitive基本類型轉(zhuǎn)換為字符串:
| 參數(shù) | 結(jié)果 |
|---|---|
| undefined | "undefined" |
| null | "null" |
| Boolean | "true"或者 "false" |
| Number | 將數(shù)字轉(zhuǎn)換為字符串,例如: "1.765" |
| String | 無需轉(zhuǎn)換 |
將Object轉(zhuǎn)換為字符串
轉(zhuǎn)換為字符串之前,兩種方法都會(huì)先將Object轉(zhuǎn)換為primitive。不同的是,""+value使用內(nèi)部函數(shù)ToPrimitive(Number) (除了date類型),而String(value)使用內(nèi)部函數(shù)ToPrimitive(String) 。
ToPrimitive(Number) : 先調(diào)用obj.valueOf ,若結(jié)果為primitive則返回;否則再調(diào)用obj.toString() ,若結(jié)果為primitive則返回;否則返回TypeError。
ToPrimitive(String) : 與ToPrimitive(Number)類似,只是先調(diào)用obj.toString() ,后調(diào)用obj.valueOf() 。
可以通過以下示例了解區(qū)別,obj如下:
var obj = {
valueOf: function()
{
console.log("valueOf");
return {};
},
toString: function()
{
console.log("toString");
return {};
}
};調(diào)用結(jié)果:
> "" + obj valueOf toString TypeError: Cannot convert object to primitive value > String(obj) toString valueOf TypeError: Cannot convert object to primitive value
它們的結(jié)果相同
""+value與String(value)雖然不同,但是我們很少能感覺到。因?yàn)椋蠖鄶?shù)object使用默認(rèn)的valueOf() ,它返回對(duì)象本身:
> var x = {}
> x.valueOf() === x
true由于valueOf()返回值并非primitive,因此ToPrimitive(Number)會(huì)跳過valueOf() ,而返回toString()的返回值。這樣,與ToPrimitive(String)的返回值就一樣了。
當(dāng)object是Boolean、Number或者String實(shí)例時(shí),valueOf()將返回primitive。這就意味著兩者的計(jì)算過程是這樣的:
ToPrimitive(Number) :valueOf()返回primitive值,然后使用ToString()轉(zhuǎn)換為字符串。
ToPrimitive(String) : toString()通過ToString()函數(shù)將primitive值轉(zhuǎn)換為字符串。
可知,雖然計(jì)算過程不同,但是它們的結(jié)果是一樣的。
結(jié)論
那么你該選擇哪種方法呢?如果你可以確保value值不是null和undefined,那么不妨使用value.toString() 。否則,你只能使用""+value 和String(value) ,它們基本上是一樣的。
感謝各位的閱讀,以上就是“javascript如何把變量轉(zhuǎn)換為字符串”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)javascript如何把變量轉(zhuǎn)換為字符串這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
新聞名稱:javascript如何把變量轉(zhuǎn)換為字符串
網(wǎng)址分享:http://chinadenli.net/article14/ggpoge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、、做網(wǎng)站、網(wǎng)站收錄、App設(shè)計(jì)、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)