JavaScript中JSON的处理心得
2015-12-30 21:45
651 查看
一门语言用到深处,就避免不了要对数据的类型进行准确判断,并针对其类型做正确处理。
抛开在Web前端环境不谈,从一门独立编程语言的角度来看js,你就会感受到对js中数据类型的理解有多么重要。
禁止直接多级访问对象属性,必须一级一级访问;如abc.d这样是不会造成报错的,但abc.d.e可能会造成异常
在继续往里面访问时,先用一个类型分析函数分析一下
例如:
在nodejs环境执行:
抛开在Web前端环境不谈,从一门独立编程语言的角度来看js,你就会感受到对js中数据类型的理解有多么重要。
禁止直接多级访问对象属性,必须一级一级访问;如abc.d这样是不会造成报错的,但abc.d.e可能会造成异常
在继续往里面访问时,先用一个类型分析函数分析一下
例如:
/** * 判断给定对象的类型,返回字符串格式的名称 * @param {Object} obj * @returns {String} */ var parseType = function (obj) { var type = typeof obj; if ("object" === type) { if (obj) { if (obj instanceof Array) { return "array"; } if (obj instanceof Object) { return type; } var native_obj = Object.prototype.toString.call(obj); if ("[object Window]" === native_obj) { return "object"; } if ("[object Array]" === native_obj || "number" === typeof obj.length && "undefined" !== typeof obj.splice && "undefined" !== typeof obj.propertyIsEnumerable && !obj.propertyIsEnumerable("splice")) { return "array"; } if ("[object Function]" === native_obj || "undefined" !== typeof obj.call && "undefined" !== typeof obj.propertyIsEnumerable && !obj.propertyIsEnumerable("call")) { return "function"; } } else { return "null"; } } else if ("function" === type && "undefined" === typeof obj.call) { return "object"; } return type; }; //示例 var abc = {}; console.log(parseType(abc.type)); console.log(parseType(abc.type.native_obj));
在nodejs环境执行:
undefined /Users/jixxxxxx/Web/js/type_ha.js:32 console.log(parseType(abc.type.native_obj)); ^ TypeError: Cannot read property 'native_obj' of undefined at Object.<anonymous> (/Users/jixxxxxx/Web/js/type_ha.js:32:31) at Module._compile (module.js:425:26) at Object.Module._extensions..js (module.js:432:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:313:12) at Function.Module.runMain (module.js:457:10) at startup (node.js:138:18) at node.js:974:3
相关文章推荐
- JSON与XML的区别比较
- js中的"=="和equals()以及is()三者的区别
- HTML+CSS+javaScript 基础知识(三)
- jsp生成二维码
- JSON解析(1)
- js指定多个分割字符分割到同个数组中
- 124 js 前台日期显示格式和操作 & js生成table
- JavaScript全讲-必知的特性
- Javascript面向对象及组件详细介绍(五)原型链
- Javascript面向对象及组件详细介绍(四)包装对象
- Javascript面向对象及组件的详细介绍(三)面向对象的拖拽
- JavaScript字符串转换日期
- Javascript面向对象及组件开发(二)面向对象的写法
- Javascript中的几种继承方式比较
- Javascript中的几种继承方式比较
- Javascript面向对象及组件开发的详细介绍(一)
- 《JavaScript高级程序设计》第8-9章
- 《JavaScript高级程序设计》第6-7章
- 《JavaScript高级程序设计》第4-5章
- JavaScript设计模式简介