【发布时间】:2020-05-14 15:19:02
【问题描述】:
下面是我的代码,用于将给定字符串的所有字符向前移动一个。
例如。 abc => bcd
const moveCharForward = (str) => {
str
.split('')
.map(char => String.fromCharCode(char.charCodeAt(0) + 1)).join('');
}
console.log(moveCharForward('abcd'));
当我调用该方法时,它会抛出 undefined。
我修改了代码,去掉了下面的大括号。
const moveCharForward = (str) =>
str
.split('')
.map(char => String.fromCharCode(char.charCodeAt(0) + 1)).join('');
console.log(moveCharForward('abcd')); //working correctly
现在,当我调用该方法时,它可以正常工作。
我想知道为什么在大括号内添加方法实现时会抛出未定义?
【问题讨论】:
-
您的
moveCharForward函数中缺少return。没有显式return语句的 JavaScript 函数返回undefined。不使用块语法的箭头函数{}是返回最后一个结果的特例。 -
你需要在大括号中返回符号
-
它没有抛出
undefined,它返回undefined。 (更准确地说:调用它会产生undefined。) -
@HunterMcMillen 谢谢。现在我明白了。
标签: javascript typescript