Javascript 变量名的类型==函数不工作

Javascript 变量名的类型==函数不工作,javascript,function,variables,typeof,Javascript,Function,Variables,Typeof,我有一个带有函数名的数组,我希望下面的代码用函数名遍历数组,并检查函数名是否存在 如果func_3不存在,它应该检查func_4是否存在,并且在检查数组中的所有函数是否存在之前不停止循环 我已经花了很多时间在这个问题上,但我不知道我哪里出了问题,请帮助我 演示代码 function func_1(){ alert("FUNCTION EXISTS"); } function func_2(){

我有一个带有函数名的数组,我希望下面的代码用函数名遍历数组,并检查函数名是否存在

如果func_3不存在,它应该检查func_4是否存在,并且在检查数组中的所有函数是否存在之前不停止循环

我已经花了很多时间在这个问题上,但我不知道我哪里出了问题,请帮助我

演示代码

          function func_1(){
              alert("FUNCTION EXISTS");
            }
            function func_2(){
              alert("FUNCTION EXISTS");
            }
            var functions = ["func_1", "func_2", "func_3", "func_4"];
            for(var i=0;i < functions.length; i++){
                var func_name = functions[i];
                if(typeof func_name=='function') {
                    alert("HELLO WORLD");
                }   
                alert("ITERATING WELL");
            }
函数func_1(){ 警报(“功能存在”); } 函数func_2(){ 警报(“功能存在”); } 变量函数=[“func_1”、“func_2”、“func_3”、“func_4”]; 对于(var i=0;i每当遇到此类问题时,只要尝试console.log(variable_name)变量,然后用脚本按页面上的F12键检查结果即可。你的情况是 控制台日志(请求类型);
控制台日志(a型)

假设您的函数如下所示:

function req(){
alert('hello world');
}
然后

因为'req'和'a'都是函数类型

==========================================================

更新 如果仍然希望使用更新的代码调用javascript函数,请使用以下命令:

function func_1(){
alert("FUNCTION EXISTS");
}
function func_2(){
alert("FUNCTION EXISTS");
}
var functions = ["func_1", "func_2", "func_3", "func_4"];
for(var i=0;i < functions.length; i++){
var func_name = new Function(functions[i]);
if(func_name && typeof func_name=='function') {
alert("HELLO WORLD");
}   
alert("ITERATING WELL");
}
函数func_1(){ 警报(“功能存在”); } 函数func_2(){ 警报(“功能存在”); } 变量函数=[“func_1”、“func_2”、“func_3”、“func_4”]; 对于(var i=0;i
“var foo=new Function(functions[i])”似乎是您想要的

您可以发布一个演示来重现您的问题吗?这听起来不对……这两种情况下都应该有效。您在控制台中收到任何特定错误吗?@Spencer T。我已经输入了一个演示代码,请稍后再试look@elclanrs我已经放了一个演示代码,你能给我一个吗look@ark3typ3哦,现在我明白了,当函数'req'不存在时,它正在破坏循环。即使函数不运行,我如何保持循环迭代exist@Manu请添加代码。我们不明白你说的是哪个循环,你可以用if(reg和typeof req='function')检查函数是否定义@Anupam Singh我已经放了一个演示代码,请看一看,错误在line=>var functions=[func_1,func_2,func_3,func_4];1.从数组元素中删除引号,2。因为func_3和func_4没有定义,所以不能将它们添加到数组中。
function func_1(){
alert("FUNCTION EXISTS");
}
function func_2(){
alert("FUNCTION EXISTS");
}
var functions = ["func_1", "func_2", "func_3", "func_4"];
for(var i=0;i < functions.length; i++){
var func_name = new Function(functions[i]);
if(func_name && typeof func_name=='function') {
alert("HELLO WORLD");
}   
alert("ITERATING WELL");
}