最近在接触TypeScript,研究和平常JavaScript的使用区别;前者声明变量的时候就要定义相应的类型,后者的变量可以根据环境来改变它的类型;这个就设计到强弱类型语言的区别了;
动态类型语言
静态类型语言就算它的类型可以根据环境而进行转换的,也就是说检查是在运行时才做的,如:
var a = 1
console.log(a+'1') // '11'
console.log(a-'1') // 0
在进行 a+'1'运算的时候,a先会把自身转化为字符串然后再更'1'进行拼接;
运算a - '1' 的时候'1'会转化成1然后进行减法运算;
动态类型在解释语言中极为普遍,如 JavaScript、Perl、Python、Ruby 等等。
静态类型语言
静态类型语言的话刚好和动态类型相反,静态类型语言类型检查是在运行前的编译阶段确定的。除非强制装换的话,类型时不能变更的。C/C++、C#、Java都是静态类型语言的典型代表。
网友评论