Javascript/Jquery-如何检查函数是不是返回任何值?
Posted
技术标签:
【中文标题】Javascript/Jquery-如何检查函数是不是返回任何值?【英文标题】:Javascript/Jquery-How to check if a function returns any value at all?Javascript/Jquery-如何检查函数是否返回任何值? 【发布时间】:2013-06-21 17:06:57 【问题描述】:有没有办法检查函数是否返回任何值。 比如:
if(loop(value) --returns a value--)
//do something
function loop(param)
if (param == 'string')
return 'anything';
【问题讨论】:
【参考方案1】:不返回对象或原始类型的函数返回未定义。检查未定义:
if(typeof loop(param) === 'undefined')
//do error stuff
【讨论】:
for other viewers do if( (typeof loop(param) ) === 'undefined') //do error stuff extra () important if ( loop(param) === undefined ) // 像答案一样工作并且“更好”。 如何区分没有返回任何内容的函数(例如:function a() var ret = a(); // typeof ret === "undefined"
)和显式返回未定义的函数(例如:function a() return void 0; // Returns undefined explicitly var ret = a(); // typeof ret === "undefined"
)?有没有办法(从调用方)知道一个函数是通过 return 语句而不是隐式返回的?谢谢【参考方案2】:
没有return
的函数将返回undefined
。你可以检查一下。
不过,函数体中的return undefined
也会返回undefined
(很明显)。
【讨论】:
如何从调用方区分这两种情况(隐式undefined
返回和显式return undefined
)?【参考方案3】:
你可以这样做:
if(loop(param) === undefined)
每次都可以,但有一个例外,如果您的函数返回undefined
,它将进入循环。我的意思是,它返回一些东西,但它是未定义的......
【讨论】:
【参考方案4】:如果您想在函数返回的情况下对函数的输出执行某些操作,请先将其传递给一个变量,然后检查该变量的类型是否为 "undefined"
。
演示
testme("I'm a string");
testme(5);
function testme(value)
var result = loop(value);
if(typeof result !== "undefined")
console.log("\"" + value + "\" --> \"" + result + "\"");
else
console.warn(value + " --> " + value + " is not a string");
function loop(param)
if (typeof param === "string")
return "anything";
【讨论】:
以上是关于Javascript/Jquery-如何检查函数是不是返回任何值?的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript/jQuery - 如何检查字符串是不是包含特定单词
如何找出使用 javascript/jquery 调用函数的次数?
如何从 .cs 文件 (C#) 调用 JavaScript/jQuery 函数
如何在 JavaScript / jQuery 中合并两个函数?