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提交多个表单的小例子
Jun 30 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
Jul 09 Javascript
jQuery 插件开发指南
Nov 14 Javascript
AngularJS基础学习笔记之表达式
May 10 Javascript
JavaScript实现弹出广告功能
Mar 30 Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 Javascript
微信小程序使用modal组件弹出对话框功能示例
Nov 29 Javascript
利用jqprint插件打印页面内容的实现方法
Jan 09 Javascript
javascript系统时间设置操作示例
Jun 17 Javascript
使用 Vue 实现一个虚拟列表的方法
Aug 20 Javascript
js实现拖拽元素选择和删除
Aug 25 Javascript
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
Javascript定义类(class)的三种方法详解
2015/03/13 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
Express的路由详解
2015/12/10 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python3实现读取chrome浏览器cookie
2016/06/19 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
python实现tail -f 功能
2020/01/17 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
Python如何定义一个函数
2015/09/01 面试题
共产党员公开承诺践诺书
2014/05/28 职场文书
岗位说明书标准范本
2014/07/30 职场文书