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 相关文章推荐
js或css实现滚动广告的几种方案
Jan 28 Javascript
网页右侧悬浮滚动在线qq客服代码示例
Apr 28 Javascript
JavaScript插件化开发教程(五)
Feb 01 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
Mar 26 Javascript
JavaScript操作URL的相关内容集锦
Oct 29 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
阿里大于短信验证码node koa2的实现代码(最新)
Sep 07 Javascript
EL表达式截取字符串的函数说明
Sep 22 Javascript
Vue 仿QQ左滑删除组件功能
Mar 12 Javascript
jQuery实现弹出层效果
Dec 10 jQuery
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
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
3种平台下安装php4经验点滴
2006/10/09 PHP
PHP调用三种数据库的方法(3)
2006/10/09 PHP
社区(php&amp;&amp;mysql)三
2006/10/09 PHP
PHP生成静态页面详解
2006/12/05 PHP
php文件操作实例代码
2012/05/10 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
php合并数组并保留键值的实现方法
2018/03/12 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
vue生命周期的探索
2019/04/03 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
Python返回数组/List长度的实例
2018/06/23 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
CSS3自定义滚动条样式的示例代码
2017/08/21 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
如何获得EntityManager
2014/02/09 面试题
2015年信访维稳工作总结
2015/04/07 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
辞职信怎么写?
2019/05/21 职场文书