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类型数据与一个字符串类型数据相加
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。