JS中如何判断传过来的JSON数据中是否存在某字段


Posted in Javascript onAugust 18, 2014

如何判断传过来的JSON数据中,某个字段是否存在,

1.obj["key"] != undefined

这种有缺陷,如果这个key定义了,并且就是很2的赋值为undefined,那么这句就会出问题了。

2.!("key" in obj)
3.obj.hasOwnProperty("key")

这两种方法就比较好了,推荐使用。

答案原文:

Actually, checking for undefined-ness is not an accurate way of testing whether a key exists. What if the key exists but the value is actually undefined?

var obj = { key: undefined };
obj["key"] != undefined // false, but the key exists!

You should instead use the in operator:

"key" in obj // true, regardless of the actual value

If you want to check if a key doesn't exist, remember to use parenthesis:

!("key" in obj) // true if "key" doesn't exist in object
!"key" in obj // ERROR! Equivalent to "false in obj"

Or, if you want to particularly test for properties of the object instance (and not inherited properties), usehasOwnProperty:

obj.hasOwnProperty("key") // true

Javascript 相关文章推荐
js判断变量是否未定义的代码
Mar 28 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
Jan 15 Javascript
JavaScript事件委托的技术原理探讨示例
Apr 17 Javascript
JavaScript前端图片加载管理器imagepool使用详解
Dec 29 Javascript
Javascript核心读书有感之语言核心
Feb 01 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
Dec 09 Javascript
如何提高javascript加载速度
Dec 26 Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 Javascript
node使用Mongoose类库实现简单的增删改查
Nov 08 Javascript
利用原生JS实现欢乐水果机小游戏
Apr 23 Javascript
Node 模块原理与用法详解
May 13 Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 Javascript
jquery中$(#form :input)与$(#form input)的区别
Aug 18 #Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
Aug 18 #Javascript
javascript ajax的5种状态介绍
Aug 18 #Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 #Javascript
js判断浏览器是否支持html5
Aug 17 #Javascript
一段非常简单的js判断浏览器的内核
Aug 17 #Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
Aug 16 #Javascript
You might like
日本因肺炎疫情影响,这几部动漫推延播放!
2020/03/03 日漫
PHP学习笔记之字符串编码的转换和判断
2014/05/22 PHP
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
js实现弹出窗口、页面变成灰色并不可操作的例子分享
2014/05/10 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
vue下拉刷新组件的开发及slot的使用详解
2020/12/23 Vue.js
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
python获取外网ip地址的方法总结
2015/07/02 Python
浅析python中的分片与截断序列
2016/08/09 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
python+selenium+PhantomJS抓取网页动态加载内容
2020/02/25 Python
python 读取二进制 显示图片案例
2020/04/24 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
Servlet的生命周期
2013/08/25 面试题
会计系毕业个人自荐信格式
2013/09/23 职场文书
请假条格式范文
2014/04/10 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
安全守法证明
2015/06/23 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python