JavaScript中检测变量是否存在遇到的一些问题


Posted in Javascript onNovember 11, 2013

在编写JavaScript程序时往往需要检测某一变量是否存在,这是一件非常简单的工作,但如果不细心也会遇到一些问题。主要有一些几点:

1、普通变量

<script type="text/javascript"> 
if(variable){ 
alert('rain man'); 
} 
</script>

这时会出现‘variable is not defined'的错误,如果改成下面就会弹出预期的对话框:
<script type="text/javascript"> 
if( typeof variable == 'undefined' ){ 
alert('rain man'); 
} 
</script>

2、对象的属性
<script type="text/javascript"> 
var two = {}; 
if(two.b){ 
alert('rain man'); 
} 
if( window.addEventListener ){ 
alert('This is not IE!'); 
} 
</script>

对于检测对象的属性则不必使用 typeof 。

3、在给对象添加属性时,也会遇到类似的问题

<script type="text/javascript"> 
var obj = {}; 
obj.property.number = 2; //这时会出现 'obj.property is undefined' 的错误 /** 
* 下面这种情况虽然没有出现语法错误,但实际上已经出现了错误. 
* 属性是复合型变量所特有的,而obj.property是数值型变量,不能含有属性. 
*/ 
var obj = {}; 
obj.property = 2 ; 
obj.property.number = 3; 
</script>
Javascript 相关文章推荐
IE6-IE9不支持table.innerHTML的解决方法分享
Sep 14 Javascript
JavaScript访问CSS属性的几种方式介绍
Jul 21 Javascript
jQuery zTree加载树形菜单功能
Feb 25 Javascript
Bootstrap3 图片(响应式图片&amp;图片形状)
Jan 04 Javascript
走进AngularJs之过滤器(filter)详解
Feb 17 Javascript
jQuery实现选项卡功能(两种方法)
Mar 08 Javascript
React Native模块之Permissions权限申请的实例相机
Sep 28 Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
JavaScript闭包原理与用法实例分析
Aug 10 Javascript
10种JavaScript最常见的错误(小结)
Jun 21 Javascript
vue等两个接口都返回结果再执行下一步的实例
Sep 08 Javascript
使用JS前端技术实现静态图片局部流动效果
Aug 05 Javascript
javascript自定义startWith()和endWith()的两种方法
Nov 11 #Javascript
javascript打印输出json实例
Nov 11 #Javascript
JS简单的图片放大缩小的两种方法
Nov 11 #Javascript
js全屏显示显示代码的三种方法
Nov 11 #Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 #Javascript
JavaScript splice()方法详解
Sep 22 #Javascript
javascript与cookie 的问题详解
Nov 11 #Javascript
You might like
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
PHP编程函数安全篇
2013/01/08 PHP
php查看网页源代码的方法
2015/03/13 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
laravel学习教程之关联模型
2016/07/30 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
2018/05/31 PHP
php用xpath解析html的代码实例讲解
2019/02/14 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
javascript入门·对象属性方法大总结
2007/10/01 Javascript
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
JS性能优化笔记搜索整理
2013/08/21 Javascript
cookie中的path与domain属性详解
2013/12/18 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
js立即执行函数: (function ( ){})( ) 与 (function ( ){}( )) 有什么区别?
2015/11/18 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
jquery中$.fn和图片滚动效果实现的必备知识总结
2017/04/21 jQuery
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
服务中心夜班服务员岗位职责
2013/11/27 职场文书
消防器材管理制度
2014/01/28 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
社区文明倡议书
2015/04/28 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android