js判断变量是否未定义的代码


Posted in Javascript onMarch 28, 2020

js 代码中经常会碰到 undefined 这种错误,下面本文分享一下为什么会发生这种错误以及如何处理这种错误,js 中如果通过 var 声明了一个变量但是没有初始化该变量的时候,此时该变量的值便为 undefined ,此时判断变量是否定义可使用 typeof 。下面举例说明一下

if(!result){ 
  alert("发生错误"); 
}

以上这段代码直接运行会发生异常,因为变量 result 没有申明就被使用了,下面几种写法都是正确的。

(1) 
 
if("undefined" == typeof result){ 
  alert("发生错误"); 
} 
(2) 
 
var result; 
if(undefined == result){ 
  alert("发生错误"); 
} 
(3) 
 
if("undefined" == typeof result){ 
  alert("发生错误"); 
}

补充

例如:

if(!myVar01)alert("发生错误");

// 该代码直接发生异常,因为变量myVar01没有申明 if("undefined" == typeof myVar01)alert("发生错误");

// 这样写才不至于发生异常

而: var myVar01; if(undefined == myVar01)alert("发生错误");

// 该代码会正确运行 if("undefined" == typeof myVar01)alert("发生错误");
// 该代码同样会正确运行

结论:我们采用下面的方式来保证万无一失 if("undefined" == typeof myVar01)alert("发生错误");

// 该代码同样会正确运行

当然判断数据的有效性远远不只这些,还有对null的判断,数字是否大道越界.

实例

<script>
//最常用
if("undefined" == typeof('a')){
//未定义
}else{
//定义
}

if("undefined" == typeof a){
//未定义
}else{
//定义
}

if(typeof a != "undefined"){
//true 定义
}else{
 //false 未定义
}
</script>

实际应用:

downlm有的页面我们不定义,但有的页面定义了,就可以需要这样的判断方法,没有定义的就不执行。

if("undefined" != typeof downlm){ 
if(downlm=="soft"){ 
document.write('成功'); 
} 
}

经测试完美。

Javascript 相关文章推荐
LBS blog sql注射漏洞[All version]-官方已有补丁
Aug 26 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
Dec 26 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
js插件YprogressBar实现漂亮的进度条效果
Apr 20 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
js+ajax实现获取文件大小的方法
Dec 08 Javascript
JS遍历页面所有对象属性及实现方法
Aug 01 Javascript
AngularJS基础 ng-include 指令简单示例
Aug 01 Javascript
JavaScript字符集编码与解码详谈
Feb 02 Javascript
Django+vue跨域问题解决的详细步骤
Jan 20 Javascript
9102了,你还不会移动端真机调试吗
Mar 25 Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
jquery判断浏览器类型的代码
Nov 05 #Javascript
js实现翻页后保持checkbox选中状态的实现方法
Nov 03 #Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
Nov 01 #Javascript
js限制textarea每行输入字符串长度的代码
Oct 31 #Javascript
JS TextArea字符串长度限制代码集合
Oct 31 #Javascript
JS 控件事件小结
Oct 31 #Javascript
jQuery事件 delegate()使用方法介绍
Oct 30 #Javascript
You might like
杏林同学录(五)
2006/10/09 PHP
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
PHP中echo,print_r与var_dump区别分析
2014/09/29 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
Laravel的Auth验证Token验证使用自定义Redis的例子
2019/09/30 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
jquery 学习笔记一
2010/04/07 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
Python中模块string.py详解
2017/03/12 Python
Python实现简易Web爬虫详解
2018/01/03 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
TensorFlow 模型载入方法汇总(小结)
2018/06/19 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
python re模块常见用法例举
2021/03/01 Python
欧洲品牌瓷器餐具网上商店:Porzellantreff.de
2018/04/04 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
年终自我鉴定
2013/10/09 职场文书
资产评估专业学生的自我鉴定
2013/11/14 职场文书
领导参观欢迎词
2015/01/26 职场文书
MySQL分库分表详情
2021/09/25 MySQL