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 parseInt 函数分析(转)
Mar 21 Javascript
jQuery如何取id有.的值一般的方法是取不到的
Apr 18 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
Dec 20 Javascript
JavaScript之数组(Array)详解
Apr 01 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 Javascript
javascript先序遍历DOM树的方法
Feb 27 Javascript
AngularJS表单详解及示例代码
Aug 17 Javascript
bootstrap实现动态进度条效果
Mar 08 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
Vue数据绑定实例写法
Aug 06 Javascript
vue中keep-alive、activated的探讨和使用详解
Jul 26 Javascript
基于postman获取动态数据过程详解
Sep 08 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
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
js 刷新页面的代码小结 推荐
2010/04/02 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
2015/04/16 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
举例讲解jQuery中可见性过滤选择器的使用
2016/04/18 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
mui框架移动开发初体验详解
2017/10/11 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
nodejs npm错误Error:UNKNOWN:unknown error,mkdir 'D:\Develop\nodejs\node_global'at Error
2019/03/02 NodeJs
vue实现分页的三种效果
2020/06/23 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
python 负数取模运算实例
2020/06/03 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
html5使用canvas画一条线
2014/12/15 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
Java的类与C++的类有什么不同
2014/01/18 面试题
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
五一家具促销方案
2014/01/10 职场文书
大学生村官工作感言
2014/01/10 职场文书
精彩广告词大全
2014/03/19 职场文书
生日宴会主持词
2014/03/20 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
2014年项目工作总结
2014/11/24 职场文书
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS
python常见的占位符总结及用法
2021/07/02 Python
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android