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

不加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。


回答:

这两个也不等效啊,一个是纯色,一个是渐变色。
在条件语句里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]

}


回答:

  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;

}


回答:

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

以上是 在JS中,有些时候方法或者函数会有return值,有些没有,,那在什么时机需要return呢? 的全部内容, 来源链接: utcz.com/p/934283.html

回到顶部