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 相关文章推荐
jQuery Ajax 实例全解析
Apr 20 Javascript
在IE浏览器中resize事件执行多次的解决方法
Jul 12 Javascript
jQuery设置与获取HTML,文本和值的简单实例
Feb 26 Javascript
window.print打印指定div指定网页指定区域的方法
Aug 04 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
原生JS实现在线问卷调查投票特效
Jan 03 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 Javascript
JS设计模式之访问者模式定义与用法分析
Feb 05 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
Sep 27 Javascript
javscript 数组扁平化的实现
Feb 03 Javascript
vue自定义指令和动态路由实现权限控制
Aug 28 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
destoon二次开发模板及调用语法汇总
2014/06/21 PHP
php扩展开发入门demo示例
2019/09/23 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
防止按钮在短时间内被多次点击的方法
2014/03/10 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
基于JavaScript实现自动更新倒计时效果
2016/12/19 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
jQuery 实时保存页面动态添加的数据的示例
2017/08/14 jQuery
Python编程之多态用法实例详解
2015/05/19 Python
Python实现统计英文单词个数及字符串分割代码
2015/05/28 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
全面了解python中的类,对象,方法,属性
2016/09/11 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
2019/08/30 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
python 简单的调用有道翻译
2020/11/25 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
幼儿园托班开学寄语
2014/01/18 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
简单租房协议书
2014/10/21 职场文书
期末考试复习计划
2015/01/19 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
python基础之文件处理知识总结
2021/05/23 Python
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers