当前位置: 首页 > 知识库问答 >
问题:

javascript - 在JS中,有些时候方法或者函数会有return值,有些没有,,那在什么时机需要return呢?

孔梓
2023-05-16

不加return:

color: arg => {
                let targetColorArr = null
                if (arg.value > 300) {
                  targetColorArr = colorArr[0]
                } else if (arg.value > 200) {
                  targetColorArr = colorArr[1]
                } else {
                  targetColorArr = colorArr[2]
                }
                return new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [
                  {
                    offset: 0,
                    color: targetColorArr[0]
                  },
                  {
                    offset: 1,
                    color: targetColorArr[1]
                  }
                ])
              }

加return:

color: arg => {
                // let targetColorArr = null
                if (arg.value > 300) {
                  return 'red' // targetColorArr = colorArr[0]
                } else if (arg.value > 200) {
                  return 'blue'// targetColorArr = colorArr[1]
                } else {
                  return 'green'// targetColorArr = colorArr[2]
                }

这两段代码都是判断什么值会获取什么颜色,直接定义好颜色的回头return,如果是之前定义好的一组颜色数组,判断就不会有return。

共有3个答案

严正初
2023-05-16

你这两种方法写法不是都有返回值吗,所以你问的应该是说在条件分支里什么情况下用return什么时候不用return吧?那就取决于你是不是要对分支结束后得到的结果作处理了,如果不用作额外处理,比如这个例子里作为参数交给了LinearGradient方法作处理,可以直接return出去,反之就先不return等分支结束再作处理。如果一个函数/方法只是单纯的对输入或者对已有元素进行处理,并不需要把它处理的值交出去给别人使用,那就可以不用return语句。

微生俊材
2023-05-16
  1. 需要函数或方法返回结果的,使用 return 返回结果。
  2. 条件语句中,已经有符合条件的结果或者该条件下的操作已经完成,那就直接 return ,不再进行后续代码的执行。

评论中的参考例子:

    /**
     * 获取URL哈希参数
     * @returns {string[]}
     */
    function getHashParameter() {
        const hashString = window.location.hash && window.location.hash.substring(1);
        const hashParam = hashString.split("&");
        hashParam.forEach(function (param, key) {
            if (-1 === param.indexOf("=")) {
                hashParam[key] = param;
            } else {
                const paramArray = param.split("=");
                hashParam[paramArray[0]] = paramArray[1];
                hashParam.splice(key, 1);
            }
        })
        return hashParam;
    }
程祺
2023-05-16

这两个也不等效啊,一个是纯色,一个是渐变色。
在条件语句里return通常是为了尽快返回减少不必要的判断和执行,也可以减少代码嵌套,下面那段代码可以写成这样:

color: arg => {
                // let targetColorArr = null
                if (arg.value > 300) {
                  return 'red' // targetColorArr = colorArr[0]
                }
                if (arg.value > 200) {
                  return 'blue'// targetColorArr = colorArr[1]
                }
                  return 'green'// targetColorArr = colorArr[2]
               }
 类似资料:
  • 本文向大家介绍render函数中return如果没有使用()会有什么问题?相关面试题,主要包含被问及render函数中return如果没有使用()会有什么问题?时的应答技巧和注意事项,需要的朋友参考一下 我们在使用JSX语法书写react代码时,babel会将JSX语法编译成js,同时会在每行自动添加分号(;),如果后换行了,那么就会变成 一般情况下会报错: Nothing was returne

  • 本文向大家介绍在js中函数返回多个值有哪些方法?相关面试题,主要包含被问及在js中函数返回多个值有哪些方法?时的应答技巧和注意事项,需要的朋友参考一下 使用数组的方式 2.将数据封装到json里面 3.return取下标 ` <script type="text/javascript"> function getData() { return ["oec2003", 25] } function

  • 我面临的一些问题,没有收到通知在一些电话。我也不接受GCM的意图。这是我打电话给GCM注册时的日志。在像Nexus和Moto这样的手机上,它运行得非常好。但在Lava和Karbonn这样的低端手机上,我就面临着这个问题。 D/PowerManagerService(649):AcquireWakeLockInternal:lock=1114432392,Flags=0x1,tag=“gcm_con

  • 问题内容: 我编写了一个打印表格的程序。我没有在主函数中包含返回语法,但是无论何时我键入echo $?它显示12。 我的源代码: 我尚未编写return 12,但每次执行程序时它仍返回12。 谢谢。 问题答案: 正如swegi所说,这是未定义的行为。 正如史蒂夫·杰索普(Steve Jessop)等人所说,在C89之前,它是一个未指定的值,并在C99中指定(观察到的行为与C99不符)。 在大多数环

  • 为什么没有添加(编辑:或或)(这是一个历史问题),在默认运行时库中是否有一个使用其他方法的简单速记,它做了我没有注意到的相同的事情?

  • 如果我有这个功能 然后投入140000000,那么这将需要一秒钟来完成。如果我需要返回的值来继续一个函数的其余部分,我想我需要等待响应,这样我就可以使用响应了 但事实上,我认为它与其说是一个值,我需要传递到下一个函数中,让它工作,所以它基本上没有等待响应,因为它基本上发送一个函数作为参数,如 所以,也许我在这里花了很多时间,但基本上,我如何实现同步编程,什么不适合速度,什么是正确使用异步和prom