动态类型语言和静态类型语言两者的区别就在于对类型的检查是在编译期还是在运行期,满足前者就是静态类型语言,反之则是动态类型语言
再说直白一点就是,静态类型语言是判断变量自身的类型信息;动态类型语言是判断变量值的类型信息,变量没有类型信息,变量值才有类型信息,这是动态语言的一个重要特征
举个例子吧
比如 JavaScript,我们声明变量 var a = 10;
比如 Python,我们声明变量 a = 10
以上就是典型的动态语言,判断变量值的类型信息,我们不知道 a 是什么类型的变量,但是可以在运行期判断知晓
比如 Java,我们声明变量 int a = 10;String a = "hello";
这就是典型的静态语言,判断变量自身的类型信息,我们已经给出了 a 的变量值类型,在编译期就已经知晓