JS实现的判断方法、变量是否存在功能示例


Posted in Javascript onMarch 28, 2020
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
////3water.com/article/67551.htm
//判断变量i是否存在 typeof(i)=="undefined"
<script>
 /*---------------------------判断函数是否存在-------------------------------*/
 function isExitsFunction(funcName) {
  try {
   if (typeof(eval(funcName)) == "function") {
    return true;
    // funcName();
   }
  } catch (e) {
   console.log(eval(funcName) + "+++++++++++++++++我异常了!!!!!!!!");
  }
  return false;
 }
 /*--------------------------------判断是否存在指定变量 -----------------------------------------*/
 function isExitsParamsVariable(variableName) {
  try {
   console.log("variableName.length===" + variableName.length);
   if (variableName.length == 0) {
    console.log(variableName + "===value has no params");//"":length为0
    return false;
   } else {
    console.log(variableName + "======value has params");//0:length为undefined
    return true;
   }
  } catch (e) {
   console.log(variableName + "----我异常了!!!!!!!!");//null,undefined,未赋值的a
  }
  return false;//null,undefined,未赋值的a
 }
 /*---------------------------------判断是否undefined--------------------------------*/
 function isExitsVariable(variableName) {
  console.log("typeof variableName====" + typeof(variableName));
  try {
   if (typeof(variableName) == "undefined") {
    console.log(variableName + "===value is undefined");//undefined,未赋值的a
    return false;
   } else {
    console.log(variableName + "=======value is true");//null,0,""
    return true;
   }
  } catch (e) {
   console.log(variableName + "-------我异常了........");
  }
  return false;
 }
 /*-------------------------------------------------测试数据---------------------------------------------*/
 var a;//声明未初始化,没有长度
 console.log("isExitsParamsVariable(a)" + isExitsParamsVariable(a));
 console.log("isExitsVariable(a)" + isExitsVariable(a));
 console.log("--------------------------------------------------")
 var b = undefined;//没有长度
 console.log("isExitsParamsVariable(b)===" + isExitsParamsVariable(b));
 console.log("isExitsVariable(b)===" + isExitsVariable(b));
 console.log("--------------------------------------------------")
 var c = null;//没有长度
 console.log("isExitsParamsVariable(c)===" + isExitsParamsVariable(c));
 console.log("isExitsVariable(c)===" + isExitsVariable(c));
 console.log("--------------------------------------------------")
 var d = 0;//长度undefined
 console.log("isExitsParamsVariable(d)===" + isExitsParamsVariable(d));
 console.log("isExitsVariable(d)===" + isExitsVariable(d));
 console.log("--------------------------------------------------")
 var e = "";//长度为0
 console.log("isExitsParamsVariable(e)====" + isExitsParamsVariable(e));
 console.log("isExitsVariable(e)===" + isExitsVariable(e));
 console.log("--------------------------------------------------")
 /*未定义声明 f 则log会报错:Uncaught ReferenceError: f is not defined ,不会执行两个判断方法*/
 console.log("isExitsParamsVariable(f)====" + isExitsParamsVariable(f));//f:undefined
 console.log("isExitsVariable(f)===" + isExitsVariable(f));
</script>
</body>
</html>

本文实例讲述了JS实现的判断方法、变量是否存在功能。分享给大家供大家参考,具体如下:

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程序设计有所帮助。

Javascript 相关文章推荐
读jQuery之十一 添加事件核心方法
Jul 31 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
Jul 10 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
Jan 07 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
Aug 24 Javascript
js生成随机数的方法实例
Oct 16 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
Sep 26 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
Dec 28 Javascript
JavaScript实现的DOM绘制柱状图效果示例
Aug 08 Javascript
优化Vue项目编译文件大小的方法步骤
May 27 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
May 06 Javascript
详解ES6数组方法find()、findIndex()的总结
May 12 Javascript
jQuery 添加元素和删除元素的方法
Jul 15 jQuery
vue 路由嵌套高亮问题的解决方法
May 17 #Javascript
JS实现字符串中去除指定子字符串方法分析
May 17 #Javascript
结合Vue控制字符和字节的显示个数的示例
May 17 #Javascript
微信小程序使用form表单获取输入框数据的实例代码
May 17 #Javascript
AngularJS实现的base64编码与解码功能示例
May 17 #Javascript
解决修复npm安装全局模块权限的问题
May 17 #Javascript
npm 下载指定版本的组件方法
May 17 #Javascript
You might like
4.与数据库的连接
2006/10/09 PHP
PHP中上传大体积文件时需要的设置
2006/10/09 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
destoon安装出现Internal Server Error的解决方法
2014/06/21 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
js 巧妙去除数组中的重复项
2010/01/25 Javascript
jquery实现盒子下拉效果示例代码
2013/09/12 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
express启用https使用小记
2019/05/21 Javascript
详解Python实现按任意键继续/退出的功能
2016/08/19 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
python中pika模块问题的深入探究
2018/10/13 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
内部类的定义、种类以及优点
2013/10/16 面试题
售后主管岗位职责
2013/12/08 职场文书
我为自己代言广告词
2014/03/18 职场文书
服务质量承诺书
2014/03/27 职场文书
元旦寄语大全
2014/04/10 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
平安工地建设方案
2014/05/06 职场文书
部门年终奖分配方案
2014/05/07 职场文书
八月迷情观后感
2015/06/11 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
python解决12306登录验证码的实现
2021/04/18 Python