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

如何用Javascript实现带倒计时的随机文本生成器?返回undefined如何解决

问题根因

你编写的create_random_string函数在拼接完成随机字符串后,没有显式声明返回值,JavaScript中所有没有写return语句的函数,执行后默认返回undefined,这就是你没有拿到预期随机文本的直接原因。

修复方案

只需要做一处修改:在create_random_string函数的末尾添加return random_string;语句,将生成好的随机字符串返回即可。另外你代码中for循环的变量声明写法存在冗余,也可以同步优化。

修复后完整代码

<button id="btn" style="background-color:red;width:30px;height:30px;"></button>
<script>   
    var timer = 5;  
    var id;
    function create_random_string(string_length){
        var random_string = 'X-';
        var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
        // 优化了for循环的变量声明写法
        for (var i = 0; i < string_length; i++){
            random_string += characters.charAt(Math.floor(Math.random()  * characters.length))
        }
        // 添加return语句返回生成的字符串
        return random_string;
    }
    function starButton() {
        this.style.display = 'none';  
        id = setInterval(function () { 
        timer--; 
        if (timer <= 0) {
            clearInterval(id);
            document.getElementById("script").innerHTML = create_random_string(5);
        }  else { 
            document.getElementById("script").innerHTML = timer + " seconds to get Code"; 
        } }, 1000); 
    };  
    var clickbtn = document.getElementById("btn");  
    clickbtn.onclick = starButton; 
</script>
<div id="script"></div> 

内容的提问来源于stack exchange,提问作者Tom DLonge Wancakan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:30:01