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 得到变量类型的函数
May 19 Javascript
ko knockoutjs动态属性绑定技巧应用
Nov 14 Javascript
jquery 卷帘效果实现代码(不同方向)
Feb 05 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
使表格的标题列可左右拉伸jquery插件封装
Nov 24 Javascript
深入浅析react native es6语法
Dec 09 Javascript
bootstrap模态框示例代码分享
May 17 Javascript
基于Vue实现页面切换左右滑动效果
Jun 29 Javascript
使用yeoman构建angular应用的方法
Aug 14 Javascript
Vue.js实现价格计算器功能
Mar 30 Javascript
基于vue实现图片验证码倒计时60s功能
Dec 10 Javascript
原生js实现文件上传、下载、封装等实例方法
Jan 05 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中长文章分页显示实现代码
2012/09/29 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
JavaScript类和继承 prototype属性
2010/09/03 Javascript
JavaScript表达式:URL 协议介绍
2013/03/10 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
js仿百度登录页实现拖动窗口效果
2016/03/11 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
微信小程序 网络API发起请求详解
2016/11/09 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
2018/01/12 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
老生常谈Python进阶之装饰器
2017/05/11 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
军训心得体会
2013/12/31 职场文书
追悼会子女答谢词
2014/01/28 职场文书
大二学生职业生涯规划书
2014/02/05 职场文书
小学数学国培感言
2014/03/10 职场文书
个人批评与自我批评总结
2014/10/17 职场文书
离职报告格式
2014/11/04 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
Spring Bean是如何初始化的详解
2022/03/22 Java/Android
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技