成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JSON.stringify()的5個秘密特性

開發 前端
JSON.stringify()是JavaScript開發人員最常用來調試的函數。但為什么用它呢,難道console.log()不能用來做同樣的事情嗎?不妨試試看。

 [[320249]]

JSON.stringify()是JavaScript開發人員最常用來調試的函數。但為什么用它呢,難道console.log()不能用來做同樣的事情嗎?不妨試試看。

 

  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()沒有輸出我們想要的結果。它輸出了[object Object],因為從對象到字符串的默認轉換是“[objectObject]”。因此,我們使用JSON.stringify()先將對象轉換為字符串,然后把結果輸入console控制臺,如下所示。

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

通常,開發人員使用這個stringify函數的方式很簡單,像上面那樣操作就可以。但是接下來所展示的它隱藏的秘密,可以讓你的生活變得輕松。

1:第二個參數(數組)

是的,stringify 函數也可以有第二個參數。它是你在控制臺中輸入對象的鍵數組。看起來簡單吧?接下來仔細看看。我們有一個“產品”對象,并且想知道產品的名稱。當我們輸入:

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

它會給出以下結果。

  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”:”PowderedSugar”},{“id”:”5006",”type”:”Chocolate withSprinkles”},{“id”:”5003",”type”:”Chocolate”},{“id”:”5004",”type”:”Maple”}]} 

在記錄里很難找到名稱鍵,因為在控制臺顯示了很多無用的信息。當對象變大時,困難也隨之增加。

stringify函數的第二個參數派上用場。不妨重寫代碼,看看結果如何。

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

問題解決了,與輸出整個JSON對象不同,我們可以只輸出所需的鍵,通過在第二個參數中將其作為數組來傳遞。

2:第二個參數(函數)

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

  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字符串的值會因為功能條件返回undefined。

3:第三個參數是數字

第三個參數控制最終字符串里的間距。如果參數是一個數字,則字符串化中的每個級別,都將縮進這個空格字符數。

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

4:第三個參數是字符串

如果第三個參數是字符串,則用它來代替上面顯示的空格字符。

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

這里*替代空格字符。

5:toJSON函數

我們有一個名為toJSON的類函數,它的屬性是可以作為任何對象的一部分。JSON.stringify返回這個函數的結果并對其進行字符串化,而不是將全部對象轉換為字符串。看看下面的例子。

  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"}" 

可以看到,它不是輸出全部對象,而是只有toJSON函數的結果。

希望你能從stringify()身上學到知識。

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2020-05-25 14:37:31

JSON.string前端秘密特性

2024-09-30 11:08:18

JSON局限性數據

2021-05-06 05:30:33

JSONstringify()parse()

2021-12-11 18:59:35

JavascriptJSON應用

2019-06-11 15:25:03

JSON性能前端

2022-12-05 14:50:53

2021-12-22 09:08:39

JSON.stringJavaScript字符串

2022-08-31 22:50:13

JavaScript函數JSON

2023-01-17 16:25:18

前端開發JSON

2024-03-25 00:10:00

JSON后端開發

2025-04-21 10:43:21

2022-03-10 09:11:33

JavaScrip開發JSON

2015-06-11 09:55:49

程序員代碼

2011-10-19 16:19:27

iOS 5蘋果

2011-08-17 10:04:13

vSphere 5虛擬化

2020-10-09 11:02:46

HTML5 特性

2024-05-08 08:32:25

架構

2019-12-05 12:11:37

DevOps開發應用程序

2018-05-18 15:05:25

JavaJava 10新特性

2025-05-15 00:01:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 激情五月综合 | 国产精品永久在线观看 | 国产精品18hdxxxⅹ在线 | 欧美午夜精品理论片a级按摩 | 在线播放一区二区三区 | 青青久久av北条麻妃海外网 | 日韩欧美在线观看视频 | 国产一区二区三区亚洲 | 一级黄色片美国 | 久久久99国产精品免费 | 国产精品久久久久久久久久久免费看 | 日本久久综合网 | 人人艹人人爽 | 成人在线免费视频观看 | 久久精品免费一区二区 | 亚洲热在线视频 | 欧美中文字幕 | 国产一区不卡 | 精品视频一区二区三区在线观看 | 国产我和子的乱视频网站 | 亚洲视频免费在线观看 | 午夜久久久久久久久久一区二区 | 亚洲精选久久 | 国产91丝袜在线播放 | 国产精品久久久久久久久久久久 | 91福利在线观看 | 国产一区在线免费观看视频 | 天天草天天射 | 日本国产精品视频 | 粉嫩av久久一区二区三区 | 成人一区二区三区 | 日韩av一区二区在线 | 国产欧美日韩精品一区二区三区 | 99国内精品久久久久久久 | 久久久国产一区 | 国产精品视频播放 | 午夜影院在线观看免费 | 久久国产视频播放 | 久久国产欧美日韩精品 | 久久亚洲精品视频 | 99精品视频免费观看 |