强类型语言与弱类型语言
强类型语言:不太支持隐式类型转换的语言。像Java、Go、Rust
弱类型语言:比较支持隐式类型转换的语言。像JS、PHP
就比如对于布尔类型的变量,如果它在和其他类型的变量进行算术运算时,不会自动转换成1/0,此时就会报错,那么这种语言就是强类型的。如果它在和其他类型的变量进行算术运算时,会自动转换成1/0,就会参与运算,此时也不会报错,那么这种语言就是弱类型的。
类型,就是对不同种类的数据进行区分。不同的数据类型可能会有不同的存储结构和不同的运算支持方式。类型强就是让不同的数据区分度更高,界限更明确;类型弱就是让不同的数据区分度更低,界限更模糊。
静态类型语言与动态类型语言
动态类型语言:动态通常指“运行时”,也就是在运行时变量的类型可以发生改变。比如:C、 C++、Java、Go、Rust
静态类型语言:静态通常指“编译时”,也就是在运行时变量的类型不能改变。比如:JS、Python、PHP、Ruby
就比如在一开始初始化变量时,如果初始化变量为数字类型,在后面使用的过程中把字符串类型赋予此变量,还能继续通过此变量使用字符串并且不报错,那么这种语言就是动态的。如果初始化变量为数字类型,在后面使用的过程中把字符串类型赋予此变量,不能继续通过此变量使用字符串并且会报错,那么这种语言就是静态的。