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 相关文章推荐
javascript与CSS复习(《精通javascript》)
Jun 29 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
Nov 25 Javascript
12种不宜使用的Javascript语法整理
Nov 04 Javascript
node.js中的fs.readSync方法使用说明
Dec 17 Javascript
如何编写高质量JS代码(续)
Feb 25 Javascript
jquery实现的美女拼图游戏实例
May 04 Javascript
JavaScript函数中关于valueOf和toString的理解
Jun 14 Javascript
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
Vue 中axios配置实例详解
Jul 27 Javascript
JS实现json数组排序操作实例分析
Oct 28 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
Dec 10 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
php中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
php中的比较运算符详解
2013/10/28 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
Nginx实现反向代理
2017/09/20 Servers
PHP使用PDO访问oracle数据库的步骤详解
2017/09/29 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
NodeJS中的MongoDB快速入门详细教程
2016/11/11 NodeJs
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
AngularJS 支付倒计时功能实现思路
2017/06/05 Javascript
Vue路由跳转问题记录详解
2017/06/15 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
Python操作csv文件实例详解
2017/07/31 Python
python3下实现搜狗AI API的代码示例
2018/04/10 Python
python主线程捕获子线程的方法
2018/06/17 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
2020/03/13 Python
浅析python标准库中的glob
2020/03/13 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
详解HTML5 Canvas绘制时指定颜色与透明度的方法
2016/03/25 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
创业计划书的主要内容有哪些
2014/01/29 职场文书
植树节活动总结
2014/04/30 职场文书
园林系毕业生求职信
2014/06/23 职场文书