TypeScript笔记 —— JavaScript的痛点

100 阅读2分钟

JavaScript的痛点

并且随着近几年前端领域的快速发展,让JavaScript迅速被普及和受广大开发者的喜爱,借助于JavaScript本身的强大,也让使用JavaScript开发的人员越来越多。优秀的JavaScript没有缺点吗?其实由于各种历史因素,JavaScript语言本身存在很多的缺点:比如ES5以及之前的使用的var关键字关于作用域的问题;比如最初JavaScript设计的数组类型并不是连续的内存空间;比如直到今天JavaScript也没有加入类型检测这一机制;

类型带来的问题

编程开发中我们有一个共识:错误出现的越早越好。能在写代码的时候发现错误,就不要在代码编译时再发现(IDE的优势就是在代码编写过程中帮助我们发现错误)。能在代码编译期间发现错误,就不要在代码运行期间再发现(类型检测就可以很好的帮助我们做到这一点)。能在开发阶段发现错误,就不要在测试期间发现错误,能在测试期间发现错误,就不要在上线后发现错误。

现在我们想探究的就是如何在 代码编译期间 发现代码的错误:JavaScript可以做到吗?不可以,我们来看下面这段经常可能出现的代码问题。

image.png

image.png

类型错误

这是我们一个非常常见的错误:这个错误很大的原因就是因为JavaScript没有对我们传入的参数进行任何的限制,只能等到运行期间才发现这个错误。并且当这个错误产生时,会影响后续代码的继续执行,也就是整个项目都因为一个小小的错误而深入崩溃。如果我们可以给JavaScript加上很多限制,在开发中就可以很好的避免这样的问题了。比如我们的getLength函数中str是一个必传的类型,如果调用者没有传编译期间就会报错。比如我们要求它的必须是一个String类型,传入其他类型就直接报错。那么就可以知道很多的错误问题在编译期间就被发现,而不是等到运行时再去发现和修改。