计算机基础 - 强类型与弱类型语言,动态与静态语言
强类型与弱类型
如果一门语言很少隐式转换类型,说明它是强类型语言;如果经常这么做,说明它是弱类型语言。Java、C++和Python是强类型语言。PHP、JavaScript和Perl是弱类型语言。
概念参照Google等搜索引擎
这里的随笔举出例子:证明Python是强类型语言,JavaScript是弱类型语言
Python:
1 + '1'
JavaScript
1 + '1'
动态与静态语言
动态类型语言是指在运行时检查类型,可以给类/实例在运行时绑定任何属性和方法;在编译时检查类型的语言是静态语言(需要声明类型)。Python、Ruby是动态语言,也使用协议。
优点与缺点
1. 强类型能及早发现缺陷:
以下是弱类型语言JavaScript的不足
' ' == '0' // false
0 == ' ' // true
0 == '0' // true
' ' < 0 // false
' ' < '0' // true
Python是强类型,不会自动在字符串和数字之前强制转换,所以在Python3中,上述==表达式的结果都是False,而<比较会抛出TypeError。