在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]
}
回答:
- 需要函数或方法返回结果的,使用
return
返回结果。 - 条件语句中,已经有符合条件的结果或者该条件下的操作已经完成,那就直接
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