第二天,我们来谈谈JavaScript(JS)与TypeScript(TS)的比较吧!
动态型别可以随时转换变数的型别,
因此若是在开发或在维护管理上不多加注意的话,
很容易发生错误。
如下范例
var i = 10 ;
i = "100" ; //success
一开始宣告变数i为数字10,
之後若是转变为字串"100",在JS上也是可以被允许的喔!
JS为动态型别可以随时转换变数的型别
弱型别在执行阶段才会发生错误,
即使有开发工具的辅助,
也在开发阶段很难发现问题所在。
如下范例
var i = 10 + "100" ; //success
在弱型别下不同型别相加是可以被允许的,
因此即使传入的型别有误也无法及时发现,
直到执行阶段才能再去做找错除错的程序。
JS为弱型别在执行阶段才会发生错误
总和JS的动态型别与弱型别的特性,
很容易造成应用程序难以除错,
想当然尔,越大型的专案也就越难找出并去除错误。
JS的继承语法特殊,而且不像物件导向程序语言,
若要使用,也是要再做些研究的。
对於已经会JS的人来说,是不需要学习新的程序语言,
因为TS只是将一些新的特性加到JS上而已,
但若是要活用TS的话,学习还是必要的呢!
另外也因此使移植变得容易,
若要将JS档案移植为TS档案的话,
只需要将副档名 .js 变更名称为 .ts,
一样是可以运作不会坏掉的喔。
TypeScript顾名思义就是着重在型别(Type)上,以型别为主要优势。
TS提供型别安全机制,
可以解决上述JS遇到的问题,
因为相对的TS拥有静态型别与强行别的特性,
不容许转换变数的型别
number i = 10 ;
i = "100" ;//error
var i = 10 ;
i = "100" ;//error 以推论型别
不容许转换变数的型别
var i = 10 + "100" ; //error
JS | TS |
---|---|
动态型别 | 静态型别 |
弱型别 | 强型别 |
因此,更能在开发阶段可即早发现问题,
不需要等到执行阶段才发现问题,
对於型别上的错误可以更有效率的发现与除错。
在维护上也是会变得更加方便,降低维护成本。
但凡事都是一体两面,因为多了型别上的管制,在开发上势必会多出一些开发成本。
目标环境真正执行的是TS撰写完转译成的JS,
因此,即使TS撰写错误,也会正常转译成JS,
而目标环境不会直接坏掉,
因为JS才是真正在运作的程序码。
最後,希望大家对於两者的优缺差异已经大致了解了,
总而言之,型别就是TypeScript(TS)最大的重点!
(想学习的TS的朋友抓好了)
<<: 【第三天 - Flutter Route 规划分享】
>>: [素食吃到饱 vegetarian food] 天菜丰巢 VeGood 蔬食百汇(台中-文心秀泰)半自助晚餐 SHOWTIME LIVE TAICHUNG WENXIN STORE
目前的版面配置是基本的瀑布流效果,而此模式较着重在显示书本封面图片,一列只能出现三本书单,RWD 的...
今天我们将来一起看一下 C# 中的另外一种数据类型:字典。 字典,是一组 key 和 value 的...
题目 xLimit = n; yLimit = m; population = pij:坐落在(i,...
昨天Go弄出了Hello World,今天就来解释怎麽写的。 Golang入门一点 先贴上昨天写的程...
什麽是 Web Share API Web App 透过 Web Share API 就能够使用系统...