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 相关文章推荐
js模拟点击事件实现代码
Nov 06 Javascript
JavaScript中按位“异或”运算符使用介绍
Mar 14 Javascript
关于Vue.js一些问题和思考学习笔记(1)
Dec 02 Javascript
javascript显示系统当前时间代码
Dec 29 Javascript
微信小程序 引入es6 promise
Apr 12 Javascript
AngularJS折叠菜单实现方法示例
May 18 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
Jul 13 Javascript
vue 国际化 vue-i18n 双语言 语言包
Jun 07 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
Sep 07 Javascript
Angular8基础应用之表单及其验证
Aug 11 Javascript
javascript移动端 电子书 翻页效果实现代码
Sep 07 Javascript
微信小程序使用蓝牙小插件
Sep 23 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的ASP防火墙
2006/10/09 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
javascript prototype,executing,context,closure
2008/12/24 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
Vue 实现可视化拖拽页面编辑器
2021/02/01 Vue.js
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
简单谈谈python基本数据类型
2018/09/26 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
Python: 传递列表副本方式
2019/12/19 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
用python发送微信消息
2020/12/21 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
生日派对邀请函
2014/01/13 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
教学评估实施方案
2014/03/16 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
2015年初中元旦晚会活动总结
2014/11/28 职场文书
2014年环境整治工作总结
2014/12/10 职场文书
李强优秀员工观后感
2015/06/16 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
浅析MongoDB之安全认证
2021/06/26 MongoDB
java解析XML详解
2021/07/09 Java/Android
MySQL修炼之联结与集合浅析
2021/10/05 MySQL