JavaScript判断变量是否为undefined的两种写法区别


Posted in Javascript onDecember 04, 2013

工作中我们经常需要判断某个变量/属性是否为undefined。通常有两种写法

// 方式1 
typeof age === 'undefined'; // 方式2 
age === undefined

这两种写法有什么区别吗? 应该使用哪一种呢?看看下面的例子
typeof age === 'undefined'; // true

标识符 age 没有声明过,输出true。

再看另一个例子

age === undefined; // 报错

Firebug提示age is not defined,JavaScript判断变量是否为undefined的两种写法区别

这就是两者的区别, 即不确定age是否声明或定义时用方式1,确定的则可以用方式2。使用方式1如果变量没有声明,代码也不会报错,但方式2会报错。看似方式1容错性更好,实际会是潜伏了的Bug。变量先声明再使用永远是个好习惯。

此外,方式1是两次运算,方式2是一次。

Javascript 相关文章推荐
javascript实现动态增加删除表格行(兼容IE/FF)
Apr 02 Javascript
再谈ie和firefox下的document.all属性
Oct 21 Javascript
获取非最后一列td值并将title设为该值的方法
Oct 30 Javascript
JavaScript返回上一页的三种方法及区别介绍
Jul 04 Javascript
使用伪命名空间封装保护独自创建的对象方法
Aug 04 Javascript
浅析上传头像示例及其注意事项
Dec 14 Javascript
js 用于检测类数组对象的函数方法
May 02 Javascript
Angular directive递归实现目录树结构代码实例
May 05 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
浅谈JavaScript 代码简洁之道
Jan 09 Javascript
vuex实现购物车功能
Jun 28 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 #Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 #Javascript
利用JS进行图片的切换即特效展示图片
Dec 03 #Javascript
JavaScript伸缩的菜单简单示例
Dec 03 #Javascript
JS window对象的top、parent、opener含义介绍
Dec 03 #Javascript
javascript实现信息的显示和隐藏如注册页面
Dec 03 #Javascript
一个js控制的导航菜单实例代码
Dec 03 #Javascript
You might like
地摊中国 - 珍藏老照片
2020/08/18 杂记
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
JavaScript前端开发之实现二进制读写操作
2015/11/04 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
JS实现点击拉拽轮播图pc端移动端适配
2018/09/05 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python去除扩展名的实例讲解
2018/04/23 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
Python3中列表list合并的四种方法
2019/04/19 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
解释一下Windows的消息机制
2014/01/30 面试题
学生周末长期请假条
2014/02/15 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
事业单位个人总结
2015/02/12 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
Python中第三方库Faker的使用详解
2022/04/02 Python