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 相关文章推荐
【消息提示组件】,兼容IE6/7&&FF2
Sep 04 Javascript
使用jquery动态加载js文件的方法
Dec 24 Javascript
JQuery实现防止退格键返回的方法
Feb 12 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
BootStrap下jQuery自动完成的样式调整
May 30 Javascript
JS新包管理工具yarn和npm的对比与使用入门
Dec 09 Javascript
完美解决JS文件页面加载时的阻塞问题
Dec 18 Javascript
Node.js读取文件内容示例
Mar 07 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
Mar 24 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
Aug 22 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
Jan 15 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 16 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
2019十大人气国漫
2020/03/13 国漫
实用函数3
2007/11/08 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
Vue 2.0入门基础知识之内部指令详解
2017/10/15 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
js canvas实现写字动画效果
2018/11/30 Javascript
Angular6 发送手机验证码按钮倒计时效果实现方法
2019/01/08 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
2017/06/15 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
大学生自我评价怎样写好
2013/10/23 职场文书
门卫人员岗位职责
2013/12/24 职场文书
办公室主任先进事迹
2014/01/18 职场文书
2014年财政所工作总结
2014/11/22 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书