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中的Window窗口对象
Jan 16 Javascript
利用JS实现浏览器的title闪烁
Jul 08 Javascript
jQuery菜单插件superfish使用指南
Apr 21 Javascript
JS全局变量和局部变量最新解析
Jun 24 Javascript
最全面的JS倒计时代码
Sep 17 Javascript
教大家轻松制作Bootstrap漂亮表格(table)
Dec 13 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
Feb 14 Javascript
jQuery弹出窗口简单实现代码
Mar 09 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
Sep 29 Javascript
React BootStrap用户体验框架快速上手
Mar 06 Javascript
Vue-cli3简单使用(图文步骤)
Apr 30 Javascript
Vue与React的区别和优势对比
Dec 18 Vue.js
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
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
php 在windows下配置虚拟目录的方法介绍
2013/06/26 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
用javascript做拖动布局的思路
2008/05/31 Javascript
IE8 下的Js错误HTML Parsing Error...
2009/08/14 Javascript
有趣的JavaScript数组长度问题代码说明
2011/01/20 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
js点击事件链接的问题解决
2014/04/25 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
vue双向绑定简要分析
2017/03/23 Javascript
iscroll实现下拉刷新功能
2017/07/18 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
vue中destroyed方法的使用说明
2020/07/21 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
python中的装饰器详解
2015/04/13 Python
Python调用服务接口的实例
2019/01/03 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
实例详解Python装饰器与闭包
2019/07/29 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
运动会跳远加油稿
2014/02/20 职场文书
爱心捐助倡议书
2014/05/19 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
主持人开幕词
2015/01/29 职场文书
微信搭讪开场白
2015/05/28 职场文书