美文网首页PHP经验分享
什么是弱类型语言、强类型语言?

什么是弱类型语言、强类型语言?

作者: 陈钢镚学财 | 来源:发表于2018-11-30 11:41 被阅读4次

强类型和弱类型主要是站在变量类型处理的角度进行分类的。

强类型是指不允许隐式变量类型转换,弱类型则允许隐式类型转换。

所以,关键在于变量数据类型的转换。

什么叫隐式类型转换?

隐式是指源码中没有明显的类型转换代码,也就是说,一个变量,你可以直接给他赋值字符串,也可以直接给他赋值数值,你还可以直接让字符串类型的变量和数值类型的变量相加,虽然得出的最终结果未必是你想象的那样,但一定不会报错。

这就是隐式类型转换,弱类型语言,如javascript、php。

Java是强类型语言,不允许隐式类型转换,也就是说,如果你需要拿一个字符串变量当做整型来用,你必须显式地将变量类型转换好。

换句话说:

  • 强类型语言,当你定义一个变量是某个类型,如果不经过代码显式转换(强制转化)过,它就永远都是这个类型,如果把它当做其他类型来用,就会报错
  • 弱类型语言,你想把这个变量当做什么类型来用,就当做什么类型来用,语言的解析器会自动(隐式)转换。

比较

弱类型显然让开发者更省力一些,一些数据类型不是很复杂的场景中基本可以不用关注数据类型的问题,这可以提高开发者的业务处理专注力,提升逻辑开发效率。

但同样,弱类型也因为它的特性,使开发者在开发过程中对变量类型的检测力度不够大,由此提高数据类型方面问题出现的可能性。

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

选择

对于开发者来说,一般很少会去想,选择什么语言开发,而是去想我学了这门语言,如何找到这门语言的工作。

但其实,语言的选择,是存在的。

比如,你负责一个项目,在做选型的时候,弱类型与强类型的一些优缺点,就是一个需要考虑的因素。

他会让你在成本、阶段、预期之间做出一定的平衡。

相关文章

  • 15.多态

    1.什么是强类型语言, 什么是是弱类型语言 1.1什么是强类型语言:一般编译型语言都是强类型语言,强类型语言,要求...

  • 71-多态

    什么是强类型语言, 什么弱类型语言什么是强类型语言:一般编译型语言都是强类型语言强类型语言, 要求变量的使用要严格...

  • 对程序健壮性的简单理解

    强类型语言VS弱类型语言 在谈健壮性之前,先谈谈什么是强类型语言和弱类型语言。首先,在大学接触的第一门语言就是C语...

  • TypeScript

    强类型与弱类型 类型安全纬度:强类型与弱类型强类型:语言层面限制函数的形参类型和实参类型必须相同。弱类型:语言层面...

  • 什么是弱类型语言、强类型语言?

    强类型和弱类型主要是站在变量类型处理的角度进行分类的。 强类型是指不允许隐式变量类型转换,弱类型则允许隐式类型转换...

  • 初学JavaScript之数据类型与变量

    和Java、C语言、c++等强类型语言不同的是JavaScript语言是弱类型语言,强类型语言的含义是指该语...

  • 弱类型语言-强类型语言

    弱类型语言vbs:a=1b=a+"1"+"a" //结果是11a,这里 a 成了字符串c=a+1 //结果是2 ,...

  • python面试题

    python语言特性 python是静态还是动态类型?是强类型还是弱类型? 动态强类型语言 动态还是静态指的是编译...

  • ts学习

    强类型语言和弱类型需要定义 强类型类型语言的变量不能赋值不同类型,除非强制类型转换

  • Typescript - 基础(一)

    1、强类型与弱类型 强类型语言:不允许改变变量的类型,除非进行强制类型转换,如 java 弱类型语言:变量可以被赋...

网友评论

    本文标题:什么是弱类型语言、强类型语言?

    本文链接:https://www.haomeiwen.com/subject/khoccqtx.html