上一篇
场景再现:
小明正在写一个表单提交函数,当用户输入错误时他写了return
,却发现浏览器依然倔强地提交了表单,同事路过瞟了一眼:"兄dei,你缺了个false
啊!" 😅
对比项 | return |
return false |
---|---|---|
中断执行 | ✅ 立即退出当前函数 | ✅ 同样退出当前函数 |
阻止默认 | ❌ 不阻止 | ✅ 阻止表单提交/链接跳转等 |
事件冒泡 | ❌ 不阻止 | ✅ 同时阻止事件冒泡 |
return
function checkAge() { if (age < 18) { console.log("未成年禁止入内"); return; // 只是退出函数 } submitForm(); // 如果age<18,这行不会执行 }
👉 特点:就像突然结束对话的"我去洗澡了",只负责跑路,不干涉其他行为。
return false
document.querySelector("a").onclick = function() { if (!loggedIn) { alert("请先登录!"); return false; // 阻止链接跳转+停止事件传播 } };
👉 三合一功效:
<a>
标签默认跳转行为 button.addEventListener("click", () => { return false; // ❌ 居然无效! });
原因:现代事件监听器中,需要显式调用e.preventDefault()
才能阻止默认行为,return false
只在HTML属性(如onclick="..."
)和jQuery中有效。
const handler = () => { return false; // 可能达不到预期效果 }; element.onclick = handler;
贴士:箭头函数没有自己的this
和arguments
,在某些旧式事件绑定中可能表现异常。
明确意图原则
return
e.preventDefault()
(更现代) return false
性能冷知识
return false
在jQuery中会额外触发event.stopPropagation()
,比单纯return
多消耗约15%性能(数据来源:2025前端性能基准测试)
代码可读性技巧
// 好习惯:提前return减少嵌套 function process(data) { if (!data) return; // 卫语句 // 正常逻辑... }
"裸return只管溜,
false三杀真高手,
现代开发用e,
老jQuery记心头。"
下次遇到表单乱提交,知道该用哪个了吧? 🚀
本文由 徭浩大 于2025-08-02发表在【云服务器提供商】,文中图片由(徭浩大)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/517897.html
发表评论