编程语言的几组概念
强类型语言:
一旦一个变量被指定了某个数据类型,如果不经过强制转换(重新赋值),那么它就永远是这个数据类型了。
如,python中,定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理,不予许不同类型相加,整形+字符串会报类型错误。强类型语言是类型安全的语言。
弱类型语言:
一旦一个变量被指定了一个数据类型,不需要强制转换,使用时直接换成其他类型语言。
如JavaScript中 整型变量a=1 + “abc”运行结果为字符串 1abc , 一个变量的类型是由其应用上下文确定的。
静态类型语言:
是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.。
动态类型语言:
是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。如python中,变量a=1,那a的类型就是整型,若a=”abc”,a的类型就是字符串。
静态语言:
一旦给变量进行了某种赋值或者绑定,不可以再绑定其他类型的数据,但可以再绑定同一类型的数据。
如 定义了一个整型变量a =1,之后可以将变量a绑定2,当不能将变量a绑定一个字符串或者其他的不是整型的数据类型。
动态语言:
不使用显示数据类型声明,给变量赋值或者定义时,不需要考虑变量类型,变量类型不固定。
如,定义了一个整型变量a =1,之后可以将变量再绑定成其他数据类型
python是强类型动态语言
JavaScript是弱类型动态语言
(自我理解 欢迎指正)