日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
JSON.stringify()的5個(gè)秘密特性

JSON.stringify()是JavaScript開(kāi)發(fā)人員最常用來(lái)調(diào)試的函數(shù)。但為什么用它呢,難道console.log()不能用來(lái)做同樣的事情嗎?不妨試試看。

從策劃到設(shè)計(jì)制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶(hù)提供網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、域名注冊(cè)、網(wǎng)絡(luò)空間、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶(hù)提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶(hù)的口碑塑造優(yōu)易品牌,攜手廣大客戶(hù),共同發(fā)展進(jìn)步。

 
 
  1. //Initialize a User object 
  2. const user = { 
  3.  “name” : “Prateek Singh”, 
  4.  “age” : 26 
  5. }console.log(user);RESULT 
  6. // [object Object] 

看!console.log()沒(méi)有輸出我們想要的結(jié)果。它輸出了[object Object],因?yàn)閺膶?duì)象到字符串的默認(rèn)轉(zhuǎn)換是“[objectObject]”。因此,我們使用JSON.stringify()先將對(duì)象轉(zhuǎn)換為字符串,然后把結(jié)果輸入console控制臺(tái),如下所示。

 
 
  1. const user = { 
  2. “name” : “Prateek Singh”, 
  3. “age” : 26 
  4. }console.log(JSON.stringify(user));RESULT 
  5. // "{ "name" : "Prateek Singh", "age" :26 }" 

通常,開(kāi)發(fā)人員使用這個(gè)stringify函數(shù)的方式很簡(jiǎn)單,像上面那樣操作就可以。但是接下來(lái)所展示的它隱藏的秘密,可以讓你的生活變得輕松。

1:第二個(gè)參數(shù)(數(shù)組)

是的,stringify 函數(shù)也可以有第二個(gè)參數(shù)。它是你在控制臺(tái)中輸入對(duì)象的鍵數(shù)組。看起來(lái)簡(jiǎn)單吧?接下來(lái)仔細(xì)看看。我們有一個(gè)“產(chǎn)品”對(duì)象,并且想知道產(chǎn)品的名稱(chēng)。當(dāng)我們輸入:

 
 
  1. console.log(JSON.stringify(product)); 

它會(huì)給出以下結(jié)果。

 
 
  1. {“id”:”0001",”type”:”donut”,”name”:”Cake”,”ppu”:0.55,”batters”:{“batter”:[{“id”:”1001",”type”:”Regular”},{“id”:”1002",”type”:”Chocolate”},{“id”:”1003",”type”:”Blueberry”},{“id”:”1004",”type”:”Devil’sFood”}]},”topping”:[{“id”:”5001",”type”:”None”},{“id”:”5002",”type”:”Glazed”},{“id”:”5005",”type”:”Sugar”},{“id”:”5007",”type”:”P(pán)owderedSugar”},{“id”:”5006",”type”:”Chocolate withSprinkles”},{“id”:”5003",”type”:”Chocolate”},{“id”:”5004",”type”:”Maple”}]} 

在記錄里很難找到名稱(chēng)鍵,因?yàn)樵诳刂婆_(tái)顯示了很多無(wú)用的信息。當(dāng)對(duì)象變大時(shí),困難也隨之增加。

stringify函數(shù)的第二個(gè)參數(shù)派上用場(chǎng)。不妨重寫(xiě)代碼,看看結(jié)果如何。

 
 
  1. console.log(JSON.stringify(product,[‘name’]);//RESULT 
  2. {"name" : "Cake"} 

問(wèn)題解決了,與輸出整個(gè)JSON對(duì)象不同,我們可以只輸出所需的鍵,通過(guò)在第二個(gè)參數(shù)中將其作為數(shù)組來(lái)傳遞。

2:第二個(gè)參數(shù)(函數(shù))

也可以將第二個(gè)參數(shù)作為函數(shù)來(lái)傳遞。它根據(jù)函數(shù)中寫(xiě)入的邏輯計(jì)算每個(gè)鍵值對(duì)。如果返回未定義(undefined)的鍵值對(duì)就不會(huì)輸出。想要更好地理解,可以參考下面這個(gè)例子。

 
 
  1. const user = { 
  2.  “name” : “Prateek Singh”, 
  3.  “age” : 26 
  4.  
  5.   
  6. Passing function as 2nd argument 
  7. // Result 
  8. { "age" : 26 } 

只有age被輸出,typeOf字符串的值會(huì)因?yàn)楣δ軛l件返回undefined。

3:第三個(gè)參數(shù)是數(shù)字

第三個(gè)參數(shù)控制最終字符串里的間距。如果參數(shù)是一個(gè)數(shù)字,則字符串化中的每個(gè)級(jí)別,都將縮進(jìn)這個(gè)空格字符數(shù)。

 
 
  1. Note: '--' represnts the spacingfor understanding purposeJSON.stringify(user, null, 2); 
  2. //{ 
  3. //--"name": "Prateek Singh", 
  4. //--"age": 26, 
  5. //--"country": "India" 
  6. //} 

4:第三個(gè)參數(shù)是字符串

如果第三個(gè)參數(shù)是字符串,則用它來(lái)代替上面顯示的空格字符。

 
 
  1. JSON.stringify(user, null,'**'); 
  2. //{ 
  3. //**"name": "Prateek Singh", 
  4. //**"age": 26, 
  5. //**"country": "India" 
  6. //} 
  7. Here * replace the space character. 

這里*替代空格字符。

5:toJSON函數(shù)

我們有一個(gè)名為toJSON的類(lèi)函數(shù),它的屬性是可以作為任何對(duì)象的一部分。JSON.stringify返回這個(gè)函數(shù)的結(jié)果并對(duì)其進(jìn)行字符串化,而不是將全部對(duì)象轉(zhuǎn)換為字符串??纯聪旅娴睦?。

 
 
  1. const user = { 
  2. firstName : "Prateek", 
  3. lastName : "Singh", 
  4. age : 26, 
  5. toJSON() { 
  6.    return { 
  7.      fullName: `${this.firstName} +${this.lastName}` 
  8.    };}console.log(JSON.stringify(user));RESULT 
  9. // "{ "fullName" : "Prateek Singh"}" 

可以看到,它不是輸出全部對(duì)象,而是只有toJSON函數(shù)的結(jié)果。

希望你能從stringify()身上學(xué)到知識(shí)。


當(dāng)前名稱(chēng):JSON.stringify()的5個(gè)秘密特性
網(wǎng)頁(yè)網(wǎng)址:http://www.5511xx.com/article/codshgd.html