You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写重复字符串函数返回NaN,求问题原因及正确实现方法

字符串重复函数返回NaN的问题分析与修复

问题根源

你用word * n实现字符串重复是核心错误:JavaScript中*是算术乘法运算符,当字符串和数字相乘时,JS会尝试把字符串转为数字——"hello"转数字会得到NaN(非数字),NaN和任何数相乘结果还是NaN,这就是返回NaN的原因。

你的代码还有其他低级错误:

  • 重复定义了三次pere函数,后面的定义会覆盖前面的,完全没必要
  • 最后一行console.log ((hello)(3));是语法错误:hello既不是函数也未定义为变量,执行会抛出ReferenceError

正确实现方式

方法1:用ES6原生repeat()方法(推荐)

这是最简单高效的方式,现代浏览器都支持:

function pere(word, n) {
    return word.repeat(n);
}

console.log(pere("hello", 3)); // 输出:hellohellohello

方法2:循环拼接(兼容旧环境)

如果需要支持不兼容ES6的旧环境,用循环累加字符串:

function pere(word, n) {
    let result = '';
    for (let i = 0; i < n; i++) {
        result += word;
    }
    return result;
}

console.log(pere("hello", 3)); // 输出:hellohellohello

额外优化:参数校验

可以加简单的参数校验,避免非法输入导致异常:

function pere(word, n) {
    // 确保word是字符串,n是正整数
    if (typeof word !== 'string' || typeof n !== 'number' || n < 1 || !Number.isInteger(n)) {
        return ''; // 或根据需求抛出错误
    }
    return word.repeat(n);
}

内容的提问来源于stack exchange,提问作者dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:10:49