JavaScript 因为其设计之仓促,故而有不少缺陷,但因为一系列历史的缘由,成为了目前运用最广泛的前端开发语言。一直以来,开发者们与这些缺陷进行着不懈的斗争,发表了一系列编码规范、开发工具(如ESLint)、类型注释工具(如 Facebook 的 Flow.js)。然而,规范不是人人遵照,工具不是人人使用,这些东西的约束力终究不够。
事实上,咱们不妨换一个思路,不直接使用 JavaScript,而使用别的、能够编译成 JavaScript 的编程语言,如 TypeScript、Dart。
带类型的前端编程语言无疑有更多的好处。
1、改善代码质量。类型的约束能够大大提升代码的质量,避免不少隐晦的错误。除了 1+2+'3' 与 '1'+2+3 这种低级问题外,比较致命的就是给函数传递参数。为了传递正确类型的参数,要采用注释、文档说明等方法,若是一个项目的管理作得好也就罢了,一旦在这方面有疏忽,还要用肉眼去解析一下代码。搞大型工程的使用,头脑原本就高负荷运转,频繁作这种事极易忙中出错,一个小错误淹没在代码的汪洋大海中,排查起来又要费一番功夫。
2、提升开发效率。若是没有类型,IDE 提供的智能感知基本只能靠猜。有了类型,IDE 能够更好帮助开发者进行代码分析、自动补全、智能感知,同时,来自传统面向对象编程语言中的类、继承、枚举、泛型,使得开发者花费更少的排错时间,而模块为构建大型应用提供了帮助,这些都让开发效率有质的飞跃。
3、下降重构难度。有谚云:“动态类型一时爽,代码重构火葬场。”这话虽有些夸张,但比较有经验的开发者对此都有所体会。
目前,比较受关注的有类型前端编程语言是 TypeScript。愈来愈多的前端项目开始用它开发,不少已有的前端项目有了对应的“.d.ts”定义文件,甚至 Angular 这样的大工程,干脆把 TypeScript 做为官方推荐语言,因而可知,类型系统在前端领域,已经愈来愈被重视。
在可预见的将来,JavaScript 极可能成为前端的“汇编语言”,而开发者们使用更有生产力、更安全、“坑”更少的前端编程语言进行开发。前端