我的朋友因为 JSON.stringify 差点丢了奖金( 四 )

  • if (['boolean', 'number'].includes(getType(data))) {
  • return String(data)
  • } else if (getType(data) === 'string') {
  • return '"' + data + '"'
  • } else {
  • let result = []
  • // 7# All the other Object instances (including Map, Set, WeakMap, and WeakSet) will have only their enumerable properties serialized.
  • Object.keys(data).forEach((key) => {
  • // 4# All Symbol-keyed properties will be completely ignored
  • if (typeof key !== 'symbol') {
  • const value = https://www.isolves.com/it/cxkf/bk/2022-11-07/data[key]
  • // 3# undefined, Functions, and Symbols are not valid JSON values. If any such values are encountered during conversion they are either omitted (when found in an object) or changed to null (when found in an array).
  • if (!commonKeys1.includes(typeof value)) {
  • result.push(`"${key}":${jsonstringify(value)}`)
  • }
  • }
  • })
  •  
  •  
  • return `{${result}}`.replace(/'/, '"')
  • }
  • }
  • }
  • }

  • 我的朋友因为 JSON.stringify 差点丢了奖金

    文章插图
    写在最后
    从一个 bug 开始 , 我们讨论了 JSON.stringify 的特性并自己实现了它 。
    今天我与你分享这个故事 , 是希望你以后遇到这个问题 , 知道怎么处理 , 不要也犯同样的错误 。
    如果你觉得有用的话 , 请点赞我 , 关注我 , 最后 , 感谢你的阅读 , 编程愉快!
     




    推荐阅读