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 EasyUI API 中文文档 - Tabs标签页/选项卡
Oct 01 Javascript
jquery表单验证使用插件formValidator
Nov 10 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
Sep 12 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
Nov 28 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
Sep 18 Javascript
JQuery fileupload插件实现文件上传功能
Mar 18 Javascript
Angular.js 实现数字转换汉字实例代码
Jul 14 Javascript
Vue.js动态组件解析
Sep 09 Javascript
vue项目中实现的微信分享功能示例
Jan 21 Javascript
Vue点击切换Class变化,实现Active当前样式操作
Jul 17 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中用数组的方法设置cookies
2011/04/21 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
php中file_get_content 和curl以及fopen 效率分析
2014/09/19 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
浅谈Javascript面向对象编程
2011/11/15 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
Vue项目全局配置页面缓存之按需读取缓存的实现详解
2018/08/01 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
vue video和vue-video-player实现视频铺满教程
2020/10/30 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python中使用ConfigParser解析ini配置文件实例
2014/08/30 Python
python连接mysql实例分享
2016/10/09 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
python 读取DICOM头文件的实例
2018/05/07 Python
python hook监听事件详解
2018/10/25 Python
python numpy元素的区间查找方法
2018/11/14 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
Linux的文件类型
2016/07/05 面试题
鼓励运动员的广播稿
2014/02/08 职场文书
早会主持词
2014/03/17 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
教师年终个人总结
2015/02/11 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
高中班主任心得体会
2016/01/07 职场文书
tomcat下部署jenkins的方法
2022/05/06 Servers