原因:
1. 网页上的操作是复杂的,
2. 传统的后端语言太过厚重
3. Javascript 更加灵活
从一个小例子入手:
现在有一个需求,想动态的创建一系列标签,要求如下
- 可以添加任意个
- 可以按任意顺序删除
想一想,用JAVA 要怎么实现
你肯定想到了,不就是使用一个数组来保存数据,然后动态的操作数组的增删不久ok 了吗。
但是想想JAVA 中数组的特点:
1. 声明时必须指定长度,长度一旦确定,再想改变数组长度,只能重新创建数组
2. 不能直接在数组中删除元素,每次删除元素后都只能创建一个新的数组来表示
这也体现了JAVA 设计的严谨性,在设计大型项目时这种特点会显得十分重要,但是面对与用户交互性极强的网页内容时,恰恰是这种严谨性限制了很多操作的表现,因为网页的本质还是以表现出丰富的操作效果为重的,因此如果使用JAVA 来实现,将会浪费很多不必要的时间和空间,且降低了效率
接下来使用Javascript 来实现
你会发现,真的是太简单了,js 本身数组的特点就是灵活,或者说根本没有限制
1. 可以无限添加,扩容
2. 可以任意删除,无需考虑其他
3. 而且提供了丰富的操作数组的API 进行操作
4. push:添加元素,splice:按照指定位置删除元素...
总结:以上只是一个很简单的例子,分别体现的是两种语言对数组的不同操作,反射到实际开发中的应用场景时的不同操作。
Java适合开发大型项目,这一点毋庸置疑,当数据类型变多,往往灵活性在项目中的占比会下降,而健壮性,可维护性比重会加强,这一点也正符合了Java 这门强类型语言的特质
熟悉Javacript历史的朋友都知道,javascript 和 java还是有相同点的,但是jsvascript摒弃了Java的类型检查,进而拥抱了灵活性, 这也体现在如何申明变量,以及对数组的操作…,反过来,当使用Javascript 开发大型项目时,便会陷入十分困难的窘状,变量提升这些js的特点,现在变成了变量冲突,可以对变量赋值任意类型的特点,变成了一系列bug 产生的源泉,(在编译阶段没有检查,只有在运行阶段才会出现),一些bug 在线上爆发时,你可能是不知道的,这就埋下了非常大的隐患
这就是TypeScript 出现的原因,静态类型检查系统,用来填补js 类型检查的不足。对TS感兴趣的朋友可以尝试使用TS 开发游戏,会有一种JS + TS ≈ ≈ JAVA 的感觉✌️
友情链接