强类型语言和弱类型语言主要是变量类型的处理方式
强类型语言不存在隐式转换,弱类型语言可以
强类型语言和弱类型语言的区别
弱类型语言主要有JS,PHP,这两类语言他可以进行隐式转换,隐式转换就是两个不同类型的变量进行相加的时候,得到的结果可能跟预期不太一样。
例:JS
var a = 1;
var b = '2';
cosnoel.log(a + b)
结果等于3
String与Number类型相加但是得到的值是Number类型,值为3,这种就是存在于隐式转换,强类型语言这种写法就会报错,必须在相加前转为相同格式,否则就会报错
例:python
a = 'abcdef'
b = 1
c = a + b
print(c)
这种写法在强类型语言中就会报错 must be str,not int
两者比较肯定弱类型语言相对于强类型语言开发比较省力,在处理一些复杂的数据的时候就会体现出来。
但同样,弱类型也因为它的特性,使开发者在开发过程中对变量类型的检测力度不够大,由此提高数据类型方面问题出现的可能性。
另外,弱类型语言的运行效率,内存利用率显然也比不上强类型语言。因为弱类型语言在运行过程中,存在变量类型的隐式转换,多了一些需要执行的操作,并且,分配内存时,会考虑通用而多分配一些,而强类型则专门为各种类型的变量量身定做地分配内存,内存利用率显然比弱类型会高。