setTimeout使用异常:文本提前显示且4秒后变为undefined求助
问题分析与修复方案
你的代码存在两个关键问题,导致了当前的异常表现:
- 直接执行
myMessage('hi'),这会让字符串立刻显示在页面上 setTimeout(myMessage, 4000)调用时未传递message参数,4秒后执行myMessage时,message会默认取undefined,页面内容因此被替换成undefined
修复后的代码(两种可选方式)
方式一:用匿名函数包裹调用
setTimeout(() => { myMessage('hi'); }, 4000); function myMessage(message){ const para = document.querySelector('.text'); para.innerHTML = message; }
方式二:利用setTimeout的第三个参数传递参数
setTimeout(myMessage, 4000, 'hi'); function myMessage(message){ const para = document.querySelector('.text'); para.innerHTML = message; }
两种方式都能实现4秒后显示'hi'的效果,核心是移除直接调用的myMessage('hi'),同时确保setTimeout触发myMessage时能正确传递字符串参数。
内容的提问来源于stack exchange,提问作者Ashir Nadeem
相关产品推荐
相关产品推荐

