强类型语言和弱类型语言的区别

强类型语言和弱类型语言主要是变量类型的处理方式
强类型语言不存在隐式转换,弱类型语言可以

强类型语言和弱类型语言的区别

弱类型语言主要有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

两者比较肯定弱类型语言相对于强类型语言开发比较省力,在处理一些复杂的数据的时候就会体现出来。
但同样,弱类型也因为它的特性,使开发者在开发过程中对变量类型的检测力度不够大,由此提高数据类型方面问题出现的可能性。

另外,弱类型语言的运行效率,内存利用率显然也比不上强类型语言。因为弱类型语言在运行过程中,存在变量类型的隐式转换,多了一些需要执行的操作,并且,分配内存时,会考虑通用而多分配一些,而强类型则专门为各种类型的变量量身定做地分配内存,内存利用率显然比弱类型会高。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值