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学习笔记(四) Number 数字类型
Jun 19 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 Javascript
javascript实现复制与粘贴操作实例
Oct 16 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
Dec 20 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
Oct 25 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
基于JavaScript实现拖动滑块效果
Feb 16 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
Aug 08 jQuery
vue element-ui el-date-picker限制选择时间为当天之前的代码
Nov 07 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
Jul 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
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
基于Python的接口测试框架实例
2016/11/04 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
美国在线工具商店:Acme Tools
2018/06/26 全球购物
几个SQL的面试题
2014/03/08 面试题
行政主管岗位职责
2013/11/18 职场文书
关于爱国的标语
2014/06/24 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
党员思想汇报材料
2014/12/19 职场文书
苏州园林导游词
2015/02/03 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
最感人的道歉情书
2015/05/12 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL
详解JS数组方法
2021/11/20 Javascript