我知道了JavaScript是一种 "松散型 "语言。
还有哪些语言是 "松散型 "的?
有 分歧 关于 松散 "或 "弱类型化 "到底是什么意思,不过,就一般人的理解,"松散类型化 "指的是一种语言的类型规则比较宽容,甚至可能隐性地将类型从一种类型转换为另一种类型。
从 维基百科:
Liskov和Zilles对强类型语言的定义是:"每当一个对象从一个调用函数传递到一个被调用函数时,它的类型必须与被调用函数中声明的类型兼容"。
根据这个定义,JavaScript是松散型语言(即与强类型语言相反),因为JavaScript的大多数操作符在必要时都会强制其操作数。
比如说
[2]-1 // 1 (equivalent to 2-1)
[2]+1 // 21 (equivalent to String([2]) + '1')
true && {} // No error, returns `{}`
另一个松散型语言的例子是: C.
请注意,JavaScript也是动态类型的。这意味着一个值的类型 绑定到该值,并在运行时进行检查而不是绑定在变量上,在编译时进行检查。实际上,类型检查是 "动态地"(即在运行时)而不是 "静态地"(即在编译时)进行的。
以下是一些例子 动态语言:
PHP &PERL也是弱类型语言。
很多解释语言如php或pearl,总之松散型语言就是不需要定义变量的语言。