function myStringfy(data) { // 字符串 >>> 自己 // 数字 >>> 自己 // undefined >>> 自己 (外面不加引号) // null >>> 自己 // function >>> undefined (外面不加引号) // 数组 >>> 用逗号分隔 如果某项为undefined 该项处记录为null // 对象 >>> key 用双引号包起来, 各属性逗号分隔 筛选掉undefined const myStringfyFunc = data => { if ( data === null || data === undefined || typeof data === 'string' || typeof data === 'number' ) { return data } else if (typeof data === 'function') { return undefined } else if (typeof data === 'object') { if (Array.isArray(data)) { // 数组 return `[${data .map(item => { if (myStringfyFunc(item) === undefined || item === null) return 'null' else return myStringfyFunc(item) }) .join(',')}]` } else { // 对象 let arr = [] for (let key in data) { if (myStringfyFunc(data[key]) !== undefined) { arr.push(`"${key}":${myStringfyFunc(data[key])}`) } } return `{${arr.join(',')}}` } } else { return new Exception('UNKNOWN TYPE!') } } if (data === undefined || typeof data === 'function') { return myStringfyFunc(data) } else if (typeof data === 'string') { return `"${myStringfyFunc(data)}"` } else { return `${myStringfyFunc(data)}` }}