一门语言用到深处,就避免不了要对数据的类型进行准确判断,并针对其类型做正确处理。

抛开在Web前端环境不谈,从一门独立编程语言的角度来看js,你就会感受到对js中数据类型的理解有多么重要。

  1. 禁止直接多级访问对象属性,必须一级一级访问;如abc.d这样是不会造成报错的,但abc.d.e可能会造成异常
  2. 在继续往里面访问时,先用一个类型分析函数分析一下

例如:

/**
 * 判断给定对象的类型,返回字符串格式的名称
 * @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 undefinedat 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

JavaScript中JSON的处理心得相关推荐

  1. Javascript中Json的使用

    JSON 1.JSON概述 JSON:JavaScript Object Notation(JavaScript 对象标记法),它是一种存储和交换数据的语法. 当数据在浏览器与服务器之间进行交换时,这 ...

  2. Javascript 中 JSON 与对象 的相互转换

    1.Json 应用现状 客户端和服务端的数据交换以一定的格式进行,目前,这种数据格式以xml和Json为主.Json是JavaScript Object Notation的简写,采用JavaScrip ...

  3. 前端 JavaScript 中 JSON.stringify() 的基本用法

    前言 在开发工作中,我们可能会碰到这样的需求:需要将某个对象内容弹窗显示或者保存在文件中,这时候如果你直接弹窗的话,很可能就是下面这样的: 因为很多接口它对参数有要求,比如只能是字符串之类的. 这时候 ...

  4. Javascript中JSON与String相与转换

    JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; //注意有 ...

  5. JavaScript 中 JSON.parse()和JSON.stringify()

    为什么80%的码农都做不了架构师?>>>    函数 描述 JSON.parse() 用于将一个 JSON 字符串转换为 JavaScript 对象. JSON.stringify( ...

  6. JavaScript 中json的遍历

    var json = {"name" : "小明","age" : "10","sex" : &qu ...

  7. javascript中JSON对象和formdata格式互相转换

    在工作中需要用到表单提交,有些是JSON对象格式的,但是要用到FormData格式的数据,所以需要转换.代码如下://json对象转formdata格式function jsonToFormData( ...

  8. JavaScript中JSON字符串转JSON对象遇到的问题

    今天遇到一个奇怪的问题,解析二维码后获得了一个JSON字符串,将JSON字符串转换成JSON对象的时候报错了. 报错如下: 代码如下: 检查了无数次数据,数据是JSON字符串,引号也都是英文的,就是莫 ...

  9. javascript中json格式转为字符串

    function ConvertJSONDateToJSDateObject(JSONDateString) {     var date = new Date(parseInt(JSONDateSt ...

  10. JavaScript中的JSON序列化/反序列化

    JSON 1. JSON简介 2. JSON与JS Object区别 3. 对象序列化 3.1 JSON序列化 3.2 JSON反序列化 1. JSON简介 JSON(JavaScript Objec ...

最新文章

  1. 2021年大数据HBase(十一):Apache Phoenix的视图操作
  2. SparkSQL和Hadoop(面向数据科学家和大数据分析师)
  3. Android库so文件及skia函数的调用
  4. 能力差的程序员90%输在这点上!CTO:其实都是瞎努力!
  5. Nagios 监控系统架设全攻略_转自IBM Developer
  6. php 3des 兼容java,PHP版3DES加解密类,可与java的3DES(DESede)加密方式兼容
  7. 只能计算机论文,谈计算机及人工智能技术发展-人工智能论文-计算机论文.docx...
  8. error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void)”中被引用
  9. Spring Boot笔记-JPA自定义SQL语句参数为对象时如何操作
  10. [转载] Python 内置函数 lambda、filter、map、reduce
  11. [Windows Server 2012] SQL Server 备份和还原方法
  12. Java考试系统题目和选项乱序实现
  13. plsql 查看表空间使用情况
  14. 举个栗子!Tableau 技巧(183):快速实现部分类别的排序
  15. 天下谁人不识君,体面的礼品
  16. 减法公式运算法则_减法的运算法则
  17. 手动计算Q-Learning的一个实例
  18. 对计算机系美好期望,计算机系举行新生入学教育大会——学生讲堂
  19. 代码Review工具upsourse的部署
  20. r语言 断轴 画图_R语言作图——坐标轴截断画图

热门文章

  1. 1.2 Linux的网络配置和连接工具
  2. 二分法06:第一个错误的版本
  3. 06向量及其坐标表示、向量的方向角与方向余弦、向量组共线与共面的条件、向量的加法与数乘运算、向量组的线性组合、二维向量的基向量分解、三维向量的基向量分解、用坐标做向量的数乘
  4. PyTorch:安装和配置
  5. python有参装饰器详解_Python 带有参数的装饰器实例代码详解
  6. HarmonyOS 编译系统源码
  7. Java 基础知识体系
  8. 软工大二下半年第十四周学习进度
  9. ASP.NET MVC中通过Request.IsAjaxRequest()来判断是否要加载公共视图
  10. $bzoj1046-HAOI2007$ 上升子序列 $dp$ 贪心