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 相关文章推荐
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
Nov 28 Javascript
jquery解析JSON数据示例代码
Mar 17 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
JS动态修改iframe高度和宽度的方法
Apr 01 Javascript
JS代码实现table数据分页效果
May 26 Javascript
javascript jquery对form元素的常见操作详解
Jun 12 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
Jun 13 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
Jan 19 Javascript
JavaScript实现按键精灵的原理分析
Feb 21 Javascript
React注册倒计时功能的实现
Sep 06 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 Javascript
JavaScript TAB栏切换效果的示例
Nov 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性能的21种方法介绍
2013/06/25 PHP
PHP获取当前页面URL函数实例
2014/10/22 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
element-ui循环显示radio控件信息的方法
2018/08/24 Javascript
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
使用Python的PIL模块来进行图片对比
2016/02/18 Python
在Python中定义和使用抽象类的方法
2016/06/30 Python
使用requests库制作Python爬虫
2018/03/25 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
对python使用http、https代理的实例讲解
2018/05/07 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
python双向链表原理与实现方法详解
2019/12/03 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
九年级科学教学反思
2014/01/29 职场文书
班组安全员工作职责
2014/02/01 职场文书
医院总经理岗位职责
2014/02/04 职场文书
小学生演讲稿大全
2014/04/25 职场文书
公路绿化方案
2014/05/12 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
客户付款通知书
2015/04/23 职场文书
司法廉洁教育心得体会
2016/01/20 职场文书
Python 语言实现六大查找算法
2021/06/30 Python
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python