1. 动静类型与动态类型
参考: https://zhuanlan.zhihu.com/p/…
-
动态类型
变量的类型必须先申明,即在创立的那一刻就曾经确定好变量的类型,而后的应用中,你只能将这一指定类型的数据赋值给变量。如果强行将其余不相干类型的数据赋值给它,就会引发谬误。在编译阶段实现数据类型的相容性查看
-
动静类型
将什么类型的数据赋值给变量,这个变量就是什么类型在运行阶段实现数据类型的相容性查看
动静类型语言举例:
- PHP
- Ruby
- Python
动态类型语言举例:
- C
- C++
- JAVA
- C#
2. 强类型与弱类型
参考:https://zhuanlan.zhihu.com/p/…
- 强类型语言 (类型不平安语言)
强类型语言是一种强制类型定义的语言,即一旦某一个变量被定义类型,如果不经强制转换,那么它永远就是该数据类型。 - 弱类型语言 (类型平安语言)
弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量能够依据环境变动主动进行转换,不须要通过现行强制转换。
强类型语言举例:
- Java
- C++
- Python
弱类型语言举例:
- VB
- PHP
- JavaScript
补充:隐式类型转换
两种模式的隐式类型转换:
- 相干类型之间隐式转换
如:一个 int 类型的数据与一个 float 类型的数据相加 - 不相干类型之隐式间转换
如:一个 int 类型数据与一个字符串类型数据相加