JavaScript函数与字符串问题:如何在函数内正确使用startsWith方法
修复方案
你可以直接使用调整后的代码实现需求:
function werewolfCheck(name) { if (name.startsWith('were')) { return 'It is a werewolf'; } else { return 'Just a regular person'; } } // 直接调用函数即可,不需要额外重新声明同名变量 console.log(werewolfCheck('werebrian')); // 输出:It is a werewolf
原代码的问题点
- 函数内部使用了未定义的变量
str,你需要判断的是传入的参数name,所以应该调用name.startsWith('were') startsWith方法的返回值本身就是布尔值(true/false),不需要再和name做全等判断,直接用它作为if的判断条件即可- 函数定义完成后,你用
var werewolfCheck = ...重新声明了同名变量,把之前定义的函数直接覆盖了,导致后续调用逻辑完全出错
可选简化写法
如果你想精简代码,可以直接用三元表达式返回结果:
const werewolfCheck = name => name.startsWith('were') ? 'It is a werewolf' : 'Just a regular person';
内容的提问来源于stack exchange,提问作者Margarida Ferreira
相关产品推荐
相关产品推荐

