弱类型就是动态类型吗

类型的强弱和动静态是正交的。一般说来:动态强类型:Python, Scheme。动态弱类型:Perl, Javascript。静态强类型:Java, Haskell。静态弱类型:C。注:各路语言传教士别太钻牛角尖。1. 什么强类型语言都架不住后门,例如Haskell有unsafeCoerce,Python可以调C代码把自己的内存堆写得乌七八糟,对了,还可以用宇宙射线来轰寄存器。2. 什么弱类型语言都架不住创造性理解,例如我硬要说Javascript的{}和加出来为0是个良好的类似于C里1+0.0=1.0的行为,也没人能拿我怎么样。3. 什么动态类型语言都架不住第三方静态分析工具,以及程序员在每个代码入口手动把变量类型判断一遍。4. 什么静态类型语言都架不住用一个巨大的递归类型来放所有变量,然后把类型检查拖到运行时。
■网友
不一样啊,动态类型是运行时变量类型可变但类型检查依然有效,弱类型就像加强版汇编,数据就是内存里的一坨东西,我不管你把这一坨当成什么类型然额为什么都说js是动态弱呢,人家本身的各种都是定义好了的行为啊,类型转换也是定义好的行为啊…………人家也仅仅是隐式类型嘛/滑稽要是真的弱得跟C似的,那前面动态两个字也不必要存在了…………
■网友
你可以把 弱类型语言 看成倾向于容忍 隐式类型转换 的语言


    推荐阅读