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基本概念初级讲解论坛贴的学习记录
Feb 22 Javascript
jQuery插件开发全解析
Oct 10 Javascript
了解了这些才能开始发挥jQuery的威力
Oct 10 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
Sep 02 Javascript
jQuery实现查找链接文字替换属性的方法
Jun 27 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 Javascript
JavaScript实现选中文字提示新浪微博分享效果
Jun 15 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
Jul 06 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
Oct 10 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
Vue formData实现图片上传
Aug 20 Javascript
es6数组之扩展运算符操作实例分析
Apr 25 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操作文件类的函数代码(文件和文件夹创建,复制,移动和删除)
2011/11/10 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
2015/05/12 PHP
CI框架表单验证实例详解
2016/11/21 PHP
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
javascript实现的固定位置悬浮窗口实例
2015/04/30 Javascript
JS实现table表格数据排序功能(可支持动态数据+分页效果)
2016/05/26 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
vue动态删除从数据库倒入列表的某一条方法
2018/09/29 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
Python利用ansible分发处理任务
2015/08/04 Python
Python实现文件复制删除
2016/04/19 Python
django之session与分页(实例讲解)
2017/11/13 Python
python使用KNN算法手写体识别
2018/02/01 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
softmax及python实现过程解析
2019/09/30 Python
Python中使用gflags实例及原理解析
2019/12/13 Python
Django中使用Celery的方法步骤
2020/12/07 Python
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
英语导游词
2015/02/13 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
MySQL批量更新不同表中的数据
2022/05/11 MySQL