热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
本提示词专为JavaScript开发场景设计,能够根据用户指定的延迟时间和执行功能,生成符合最佳实践的setTimeout函数代码。通过结构化参数输入,确保生成的代码具备技术准确性、逻辑清晰性和可维护性,同时提供详细的代码注释和使用说明,帮助开发者快速理解和使用定时器功能。适用于网页交互开发、动画实现、异步任务处理等多种前端开发场景。
延迟 3 秒后切换轮播图可见项(使用 setTimeout,含错误处理与取消支持)
'use strict';
/**
* 切换指定容器内的 .slide 项,仅显示目标索引项。
* @param {{ selector: string, index: number }} params
* - selector: 容器选择器(例如 '#banner'),容器下应包含若干 .slide 元素
* - index: 目标要显示的 .slide 索引(从 0 开始)
*/
function switchSlide({ selector, index }) {
// 参数校验
if (typeof selector !== 'string' || !selector.trim()) {
console.warn('[switchSlide] Invalid selector:', selector);
return;
}
const root = document.querySelector(selector);
if (!root) {
console.warn(`[switchSlide] Element not found for selector: "${selector}"`);
return;
}
const items = root.querySelectorAll('.slide');
const count = items.length;
if (count === 0) {
console.warn(`[switchSlide] No ".slide" elements inside "${selector}"`);
return;
}
// 索引合法性校验
const safeIndex = Number(index);
if (!Number.isInteger(safeIndex)) {
console.warn(`[switchSlide] Index must be an integer. Received: ${index}`);
return;
}
if (safeIndex < 0 || safeIndex >= count) {
console.warn(`[switchSlide] Index out of bounds (${safeIndex}). Valid range: 0 - ${count - 1}`);
return;
}
// 切换显示状态
items.forEach((el, i) => {
el.style.display = i === safeIndex ? 'block' : 'none';
});
}
/**
* 使用 setTimeout 在指定延迟后执行 switchSlide。
* @param {number} delayMs - 延迟毫秒数,必须为非负有限数
* @param {{ selector: string, index: number }} params - 传给回调的参数
* @returns {number} timeoutId - 定时器 ID,可用于 clearTimeout 取消
*/
function scheduleSwitch(delayMs, params) {
if (!Number.isFinite(delayMs) || delayMs < 0) {
throw new Error(`delayMs must be a non-negative finite number. Received: ${delayMs}`);
}
// 安全执行:捕获回调中的异常,避免未处理错误中断后续逻辑
const timeoutId = setTimeout(() => {
try {
switchSlide(params);
} catch (err) {
console.error('[scheduleSwitch] Unexpected error while switching slide:', err);
}
}, delayMs);
return timeoutId;
}
// 要求:延迟时间 3000ms,执行功能为显示 #banner 容器内第 2 个 .slide(索引 1)
const timeoutId = scheduleSwitch(3000, { selector: '#banner', index: 1 });
// 如需在延迟期间取消执行(例如用户交互变化):
/* clearTimeout(timeoutId); */
延迟 5 秒后显示 Toast,并在 2 秒后自动移除的安全版 setTimeout 实现
/**
* 在指定延迟后显示一条 toast 消息,并在 2 秒后自动移除。
* 返回一个对象,可用于取消尚未触发的延迟执行。
*
* 设计原则:
* - 使用 textContent 避免 XSS 风险,替代不安全的 innerHTML。
* - 参数与类型校验,避免运行时错误。
* - 提供取消功能,避免页面切换或组件卸载时的内存泄漏。
*
* @param {Object} options
* @param {number} options.delay 延迟时间,毫秒。必须为非负有限数值。
* @param {string} options.message 要显示的提示消息。
* @param {string} options.container 容器的选择器(如 "#notify")。
* @returns {{ id: number|null, cancel: function }} 返回超时定时器 id 和取消函数。
*/
function showTimeoutToast({ delay = 5000, message, container }) {
// 基本校验
if (typeof delay !== 'number' || !Number.isFinite(delay) || delay < 0) {
throw new TypeError('delay 必须为非负有限数值');
}
if (typeof container !== 'string' || container.trim() === '') {
throw new TypeError('container 必须为非空字符串选择器');
}
// 环境校验(SSR/非浏览器场景)
if (typeof document === 'undefined') {
console.warn('当前环境不存在 document,跳过 UI 显示');
return { id: null, cancel: () => {} };
}
// 外层延迟:在 delay 毫秒后显示 toast
const timeoutId = setTimeout(() => {
try {
const c = document.querySelector(container);
if (!c) {
console.warn(`未找到容器: ${container}`);
return;
}
// 使用安全的 DOM API 构建内容,避免使用 innerHTML
const toast = document.createElement('div');
toast.className = 'toast';
toast.textContent = String(message ?? '');
// 将 toast 插入容器
c.appendChild(toast);
// 内层延迟:2 秒后移除 toast
const removeId = setTimeout(() => {
// 确保 toast 仍在对应容器中再移除
if (toast && toast.parentNode === c) {
c.removeChild(toast);
}
// 移除局部引用,帮助 GC
}, 2000);
// 可选:将 removeId 记录在元素上(便于调试或高级控制)
toast.dataset.removeTimeoutId = String(removeId);
} catch (err) {
console.error('显示 toast 过程中发生错误:', err);
}
}, delay);
// 提供取消尚未执行的外层定时器的能力
return {
id: timeoutId,
cancel: () => {
if (timeoutId !== null) {
clearTimeout(timeoutId);
}
}
};
}
说明:
<!-- 示例容器 -->
<div id="notify"></div>
<!-- 可选:简单的样式,让 toast 更明显 -->
<style>
.toast {
display: inline-block;
padding: 8px 12px;
background: #333;
color: #fff;
border-radius: 4px;
font-size: 14px;
box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
</style>
<script>
// 将上面的 showTimeoutToast 函数粘贴到此处或在外部脚本中引入
// 调用:5 秒后显示提示,并在 2 秒后自动移除
const timer = showTimeoutToast({
delay: 5000,
message: '请求超时,请稍后再试',
container: '#notify'
});
// 如果需要取消尚未触发的显示(例如用户已成功返回数据)
// 可在合适的时机调用:
// timer.cancel();
</script>
用一句话说明“延迟多久、要做什么”,即可生成一份可直接使用的 JavaScript 定时器代码与清晰的使用指南;默认补全命名、注释、异常与边界处理,帮助你快速完成动画延迟、交互提醒、轮播切换、加载超时、防抖等高频需求;通过引导式追问澄清需求细节,避免遗漏;让新人快速上手、资深开发更高效,减少返工与沟通成本,统一团队代码风格,稳定交付质量,提升上线成功率。
快速生成延迟交互、轮播切换、表单防抖等定时逻辑;统一命名与注释,减少手写错误,提升交付速度。
为请求超时兜底、加载占位、异步重试等场景,一键产出可用方案,缩短联调周期。
将动画触发、阶段过渡、提示延迟以可读代码落地,保障性能与一致性。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
半价获取高级提示词-优惠即将到期