代码中加了lint校验,不允许使用console,那么catch中如何捕获错误,并且有所体现。
这就得从为什么会有不让用 console 的这条 lint 规则说起。
原因就是有人认为 log 不应该随手打在浏览器控制台,应该合理规范起来,加上 时间戳,tag,等等,方便检索,所以呢,你最好把 console 包装起来用。包装的好处还有就是,你甚至可以很轻松换掉底层的实现,你可以把一个 div 当输出,甚至把 log 发到服务器,而根本不用浏览器本身的 console。而随手写 console.log 的话,将来你要改进,就只能 ctrl + F 全局搜索了。
lint 之所以是 lint 而不是直接的语言特性,是因为 lint 只是在规范 99% 的情况,剩下的 1% 如果不得不打破某些规则,那就打破。或者你觉得哪条规则很蠢,那你就定制你自己认为舒服的规则。
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
4 回答1.7k 阅读
我认为这个题目不成立。
体现出来就是给人看的,要么给用户看,要么自己(程序员)看。如果是自己看没必要不用 console,只在不行你加行注释抑制掉错误就是了。
如果给用户看那随手弹个模态框就是了,我觉得也不需要来问。
另一种方法是把某些错误收集起来发来一个专用的借口(比如 fundebug),这样你可以在后台看到前端 catch 到的错误了。