动/静态语言、强/弱类型语言、编译型/解释形语言的区别
动态类型语言和静态类型语言的区别
-
动态语言/动态类型语言
理解:在编程时不会给变量定义类型,运行期间才会做数据类型的检查,语言会在该变量第一次赋值时判断该值的类型,并将数据类型记录下来。python就是典型的动态类型语言。
-
静态语言/静态类型语言
理解:与动态类型语言恰好相反,在编程中定义变量时就要声明该变量的数据类型,在编译期间检查。C、C++、Java就是典型的静态类型语言。
强类型语言和弱类型语言的区别
-
强类型语言/强制数据类型定义语言
理解:变量定义了数据类型后,如果不经过强转,数据就不能转换为别的数据类型,此语言是数据
安全的语言。C、C++、Java就是强类型语言
-
弱类型语言
理解:变量可赋不同类型的语言,也就是说此语言常常会隐式转换数据,JavaScript就是弱类型语言
-
注意:
- 强弱类型语言并没有非常明确的定义
- 因为强类型语言需要对每个变量类型做判断,所以强类型语言在速度上要比弱类型略逊一筹,换言之强类型语言带来的严谨性能够避免在变量类型及赋值上的许多错误。
编译型语言和解释型语言的区别
-
前言:计算机不能直接识别高级语言,所有的高级语言都必须翻译成机器语言(二进制机器指令)
-
编译型语