JavaScript中判断函数、变量是否存在


Posted in Javascript onJune 10, 2015

一、是否存在指定函数

function isExitsFunction(funcName) {
  try {
    if (typeof(eval(funcName)) == "function") {
      return true;
    }
  } catch(e) {}
  return false;
}

二、类似PHP常用的判断函数是否存在,不存在则创建

if (typeof String.prototype.endsWith != 'function') {
 String.prototype.endsWith = function(suffix) {
  return this.indexOf(suffix, this.length - suffix.length) !== -1;
 };
}

三、判断js函数是否存在,如果存在则执行

假设funcName为函数名字,用如下方法就可以达到目标

一定要添加try catch块,否则不起作用。

try 
{ 
 if(typeof(eval(funcName))=="function") 
 {
   funcName();
 }
}catch(e)
{
//alert("not function"); 
}

四、是否存在指定变量

function isExitsVariable(variableName) {
  try {
    if (typeof(variableName) == "undefined") {
      //alert("value is undefined"); 
      return false;
    } else {
      //alert("value is true"); 
      return true;
    }
  } catch(e) {}
  return false;
}

一般情况下,我们单独判断变量是否存在都是用

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

这样就不会因为直接使用变量导致出错了,适用于页面改版,旧页面没有变量赋值的情况。

Javascript 相关文章推荐
JavaScript触发器详解
Mar 10 Javascript
通过百度地图获取公交线路的站点坐标的js代码
May 11 Javascript
简单的Jquery全选功能
Nov 07 Javascript
JQUERY 设置SELECT选中项代码
Feb 07 Javascript
JavaScript Serializer序列化时间处理示例
Jul 31 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
Oct 14 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
protractor的安装与基本使用教程
Jul 07 Javascript
小程序清理本地缓存的方法
Aug 17 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
vue3中的组件间通信
Mar 31 Vue.js
vue中 this.$set的使用详解
Nov 17 Vue.js
Javascript中实现String.startsWith和endsWith方法
Jun 10 #Javascript
Javascript中判断对象是否为空
Jun 10 #Javascript
javascript事件委托的方式绑定详解
Jun 10 #Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 #Javascript
浅析JavaScript动画
Jun 10 #Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 #Javascript
JavaScript检查数字是否为整数或浮点数的方法
Jun 09 #Javascript
You might like
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
得到jQuery detach()后节点中的某个值实现代码
2013/02/05 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
2016/07/07 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
nuxt.js写项目时增加错误提示页面操作
2020/11/05 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
详解Python编程中time模块的使用
2015/11/20 Python
python 获取url中的参数列表实例
2018/12/18 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
PyCharm+PyQt5+QtDesigner配置详解
2020/08/12 Python
python 如何上传包到pypi
2020/12/24 Python
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
大学生个人事迹材料
2014/01/21 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
2014年法务工作总结
2014/12/11 职场文书
工程部部长岗位职责
2015/02/12 职场文书
Python源码解析之List
2021/05/21 Python
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
Android中的Launch Mode详情
2022/06/05 Java/Android