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 相关文章推荐
alert中断settimeout计时功能
Jul 26 Javascript
JavaScript中的运算符种类及其规则介绍
Sep 26 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
Dec 14 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
Jan 04 Javascript
js模拟微博发布消息
Feb 23 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
vue表单绑定实现多选框和下拉列表的实例
Aug 12 Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
Apr 20 Javascript
js根据需要计算数组中重复出现某个元素的个数
Jan 18 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 Javascript
如何理解Vue简单状态管理之store模式
May 15 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下MYSQL limit的优化
2008/01/10 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
php更新cookie内容的详细方法
2019/09/30 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
如何用js控制css中的float的代码
2007/08/16 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
2014/03/18 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
用jmSlip编写移动端顶部日历选择控件
2016/10/24 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
JavaScript实现计数器基础方法
2017/10/10 Javascript
细说webpack源码之compile流程-rules参数处理技巧(1)
2017/12/26 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
jQuery实现弹出层效果
2019/12/10 jQuery
基于vue--key值的特殊用处详解
2020/07/31 Javascript
详解webpack的文件监听实现(热更新)
2020/09/11 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
2020/11/12 Javascript
python类装饰器用法实例
2015/06/04 Python
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
python tkinter组件摆放方式详解
2019/09/16 Python
Python基础之字符串常见操作经典实例详解
2020/02/26 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
在Python中实现字典反转案例
2020/12/05 Python
幼儿教师研修感言
2014/02/12 职场文书
六查六看自查材料
2014/02/17 职场文书
技术总监管理职责范本
2014/03/06 职场文书
学校领导班子对照检查材料
2014/08/28 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS