Javascript:不同的返回类型

标签 javascript

我看到我可以从 JavaScript 中的同一个函数返回不同的类型。这种做法是惯用的还是应该劝阻?

例如:

somefn = function(e) {
    switch (e.type) 
    {
       case 'mousedown':
         return false;
       case 'mousemove':
         return {x:10, y:20};
    }
 };

最佳答案

我会阻止它。任何使用可根据上下文返回不同类型的函数的代码都必须检查返回值。

然而,在某些情况下它是有意义的。假设您有一个解析字符串的函数,例如 JSON。在这种情况下,如果输入字符串是表示数组的 JSON 字符串,则返回数组非常有意义,如果输入包含对象、 bool 值、数字等,则返回对象。

一般来说,做最不会引起意外的事情。例如,你的例子会让我大吃一惊。

关于Javascript:不同的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5849256/

相关文章:

javascript - 使用占位符和替换对象格式化 JavaScript 字符串?

javascript - Next.js,getStaticProps 不与组件一起工作,但与页面一起工作

javascript - 如何使用递归将一个对象转换为另一个对象。 Javascript

javascript - 当audioContext.destination在Web Audio API中不播放声音时如何监听

javascript - 如何在谷歌地图的风格上加载一个巨大的图像?

PHP二维数组转Javascript数组

javascript - testcafe 基于浏览器运行不同的测试

javascript - 不支持 svg 的浏览器的 CSS hack

javascript - Angular 6 : Unable to access js variable in template getting async data

javascript - React router Link标签在目标="_blank"上呈现不同的路由