热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
本提示词专为JavaScript开发场景设计,能够根据用户提供的具体条件自动生成符合最佳实践的条件语句代码。它支持多种条件类型和复杂度级别,提供详细的代码解释和优化建议,帮助开发者快速实现业务逻辑。通过结构化的工作流程,确保生成的代码具备良好的可读性、可维护性和性能表现,适用于从简单判断到复杂业务逻辑的各种开发需求。
条件分析
生成代码
/**
* 校验注册表单
* @param {{ email?: string, password?: string, agreeTerms?: boolean }} form
* @returns {{ valid: boolean, reasons: string[] }}
*/
function validateRegistration(form = {}) {
const { email = '', password = '', agreeTerms } = form;
// 1) Email:trim 后进行基本格式匹配
const trimmedEmail = String(email).trim();
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/;
const isEmailValid = emailPattern.test(trimmedEmail);
// 2) Password:长度≥8 + 至少一个字母 + 至少一个数字
const pwd = String(password);
const isLongEnough = pwd.length >= 8;
const hasLetter = /[A-Za-z]/.test(pwd);
const hasDigit = /\d/.test(pwd);
const isPasswordValid = isLongEnough && hasLetter && hasDigit;
// 3) 同意条款
const isTermsAgreed = agreeTerms === true;
// 收集失败原因标签
const reasons = [];
if (!isEmailValid) reasons.push('EMAIL_INVALID_FORMAT');
if (!isLongEnough) reasons.push('PASSWORD_TOO_SHORT');
if (!hasLetter) reasons.push('PASSWORD_MISSING_LETTER');
if (!hasDigit) reasons.push('PASSWORD_MISSING_NUMBER');
if (!isTermsAgreed) reasons.push('TERMS_NOT_AGREED');
return {
valid: isEmailValid && isPasswordValid && isTermsAgreed,
reasons
};
}
代码解释
优化建议
使用示例
// 示例1:全部通过
console.log(
validateRegistration({
email: ' user@example.com ',
password: 'abc12345',
agreeTerms: true
})
);
// => { valid: true, reasons: [] }
// 示例2:邮箱错 + 密码短 + 未同意
console.log(
validateRegistration({
email: 'bad@format',
password: 'a1b2c',
agreeTerms: false
})
);
// => {
// valid: false,
// reasons: [
// 'EMAIL_INVALID_FORMAT',
// 'PASSWORD_TOO_SHORT',
// 'PASSWORD_MISSING_LETTER', // 若密码没有字母/数字,会同时提示
// 'PASSWORD_MISSING_NUMBER',
// 'TERMS_NOT_AGREED'
// ]
// }
// 示例3:密码缺数字
console.log(
validateRegistration({
email: 'person@domain.io',
password: 'abcdefgh',
agreeTerms: true
})
);
// => { valid: false, reasons: ['PASSWORD_MISSING_NUMBER'] }
条件分析
生成代码
/**
* 路由守卫条件判断
* @param {Object} user - { isAuthenticated, role, permissions, status }
* @param {Object} route - { meta?: { requiresAuth?: boolean, allowRoles?: string[], requirePermissions?: string[] } }
* @returns {{ allowed: boolean, reason?: string, details?: any }}
*/
function canActivate(user = {}, route = {}) {
const meta = route?.meta ?? {};
// 1) 不需要鉴权则直接放行
if (!meta.requiresAuth) {
return { allowed: true };
}
// 2) 需要鉴权:必须已认证
if (!user?.isAuthenticated) {
return { allowed: false, reason: 'AUTH_REQUIRED' };
}
// 3) 禁止被封禁用户
if (user?.status === 'suspended') {
return { allowed: false, reason: 'USER_SUSPENDED' };
}
// 4) 角色白名单(存在且非空时才校验)
if (Array.isArray(meta.allowRoles) && meta.allowRoles.length > 0) {
if (!meta.allowRoles.includes(user?.role)) {
return { allowed: false, reason: 'ROLE_NOT_ALLOWED' };
}
}
// 5) 权限要求(存在且非空时才校验:需全部具备)
if (Array.isArray(meta.requirePermissions) && meta.requirePermissions.length > 0) {
const userPerms = Array.isArray(user?.permissions) ? user.permissions : [];
const missing = meta.requirePermissions.filter(p => !userPerms.includes(p));
if (missing.length > 0) {
return {
allowed: false,
reason: 'MISSING_PERMISSIONS',
details: { missing }
};
}
}
// 全部通过
return { allowed: true };
}
代码解释
优化建议
使用示例
const user = {
isAuthenticated: true,
role: 'editor',
permissions: ['read:post', 'edit:post'],
status: 'active'
};
const route = {
path: '/admin',
meta: {
requiresAuth: true,
allowRoles: ['admin', 'editor'],
requirePermissions: ['read:post', 'edit:post', 'publish:post']
}
};
const result = canActivate(user, route);
// result => { allowed: false, reason: 'MISSING_PERMISSIONS', details: { missing: ['publish:post'] } }
条件分析
生成代码
/**
* 计算电商结算的应付金额(阶梯折扣 + 新用户立减 + 优惠券(折上折/直减))
* 规则要点:
* 1) 阶梯折扣基于原始 cartTotal:≥800→0.85;≥300→0.90;≥100→0.95;否则 1.00
* 2) 新用户再减 10(与折扣可叠加)
* 3) 优惠券有效条件:now <= coupon.expiry 且 cartTotal ≥ coupon.minSpend
* - percent:coupon.value 为 (0,1) 的系数,折上折
* - cash:coupon.value 为正数,金额直减
* 4) 最低应付不低于 1
*/
function calculatePayable(cartTotal, isNewUser, coupon, now) {
// 基本校验与归一化(守卫)
if (typeof cartTotal !== 'number' || !Number.isFinite(cartTotal)) {
throw new TypeError('cartTotal 必须是有限数值');
}
if (cartTotal < 0) cartTotal = 0;
const NEW_USER_OFF = 10;
let payable = cartTotal;
// 1) 阶梯折扣(基于原始 cartTotal 判档)
if (cartTotal >= 800) {
payable *= 0.85;
} else if (cartTotal >= 300) {
payable *= 0.90;
} else if (cartTotal >= 100) {
payable *= 0.95;
} // <100 无折扣
// 2) 新用户立减
if (isNewUser === true) {
payable -= NEW_USER_OFF;
}
// 3) 优惠券有效性检查(基于原始 cartTotal 验 minSpend;时间直接用 <= 比较)
const hasCoupon = !!coupon && (coupon.type === 'percent' || coupon.type === 'cash');
const couponNotExpired = hasCoupon && now <= coupon.expiry;
const meetsMinSpend = hasCoupon && cartTotal >= coupon.minSpend;
if (hasCoupon && couponNotExpired && meetsMinSpend) {
if (coupon.type === 'percent') {
// 折上折系数需在 (0,1) 之间
const factor = coupon.value;
if (typeof factor === 'number' && factor > 0 && factor < 1) {
payable *= factor;
}
} else if (coupon.type === 'cash') {
const amount = coupon.value;
if (typeof amount === 'number' && amount > 0) {
payable -= amount;
}
}
}
// 4) 最低应付不低于 1
if (payable < 1) payable = 1;
// 可选:按业务需要保留两位小数(避免浮点误差)
// payable = Math.round((payable + Number.EPSILON) * 100) / 100;
return payable;
}
代码解释
优化建议
使用示例
const now = new Date('2025-12-01T10:00:00Z');
// 示例1:老用户,无券,cartTotal=350 → 9折
calculatePayable(350, false, null, now); // 315
// 示例2:新用户,无券,cartTotal=120 → 95折后再减10
// 120 * 0.95 = 114 → 114 - 10 = 104
calculatePayable(120, true, null, now); // 104
// 示例3:老用户,percent 券 0.9(再打9折),cartTotal=820
// 阶梯:820 * 0.85 = 697 → 券有效且满额 → 697 * 0.9 = 627.3
calculatePayable(
820,
false,
{ type: 'percent', value: 0.9, minSpend: 500, expiry: new Date('2025-12-31') },
now
); // 627.3
// 示例4:新用户,cash 券 30 元,cartTotal=305
// 阶梯:305 * 0.9 = 274.5 → 新人 -10 = 264.5 → 券有效 -30 = 234.5
calculatePayable(
305,
true,
{ type: 'cash', value: 30, minSpend: 200, expiry: new Date('2025-12-31') },
now
); // 234.5
// 示例5:大量优惠导致金额 < 1,触发最低应付 1
calculatePayable(
110,
true,
{ type: 'cash', value: 200, minSpend: 100, expiry: new Date('2025-12-31') },
now
); // 1
把零散、易错的业务规则,快速转化为清晰、可维护、可上线的 JavaScript 条件语句,并同步产出解释与优化建议,帮助团队在关键环节提效与控风险。
快速搭建表单校验、组件状态切换、路由守卫;一键生成条件语句并附解释,减少调试时间与回归风险。
将复杂权限、定价、分流等规则转为清晰分支;依据建议优化结构,稳态上线,便于后续扩展与联调。
据代码解释梳理边界清单,派生正反例与异常路径;快速编写高覆盖用例,提前发现隐性逻辑缺陷。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
半价获取高级提示词-优惠即将到期