JS模拟 JSON.stringify 的基础功能实现


测试数据:

// 下面这个obj变量将用于测试

var obj = {
  a: 1,
  b: {
    c: 'hello',
  },
};

模拟实现:

/**
 * 模拟 JSON.stringify
 */
var stringify = function(data) {
  let str = '';
  switch (typeOf(data)) {
    case 'object':
      str += '{';
      for (const key in data) {
        if (data.hasOwnProperty(key)) {
          const value = stringify(data[key]);
          str += `${key}:${value},`;
        }
      }
      str += '}';
      return str;
    case 'string':
      return '"' + data + '"';
    case 'number':
      return '' + data;
  }
};

/**
 * 判断数据类型
 */
var typeOf = function(o) {
  const toString = Object.prototype.toString;
  return toString.call(o).slice(8, -1).toLowerCase();
};

模拟代码还没写完,后面继续补充