还有哪些语言是像JavaScript一样的松散类型?[非公开]

问题描述 投票:0回答:3

我知道了JavaScript是一种 "松散型 "语言。

还有哪些语言是 "松散型 "的?

javascript syntax programming-languages
3个回答
3
投票

分歧 关于 松散 "或 "弱类型化 "到底是什么意思,不过,就一般人的理解,"松散类型化 "指的是一种语言的类型规则比较宽容,甚至可能隐性地将类型从一种类型转换为另一种类型。

维基百科:

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也是动态类型的。这意味着一个值的类型 绑定到该值,并在运行时进行检查而不是绑定在变量上,在编译时进行检查。实际上,类型检查是 "动态地"(即在运行时)而不是 "静态地"(即在编译时)进行的。

以下是一些例子 动态语言:

  • ActionScript
  • Clojure
  • 利普
  • 路亚
  • Perl
  • 蟒蛇
  • 红宝石
  • Smalltalk

2
投票

PHP &PERL也是弱类型语言。


0
投票

很多解释语言如php或pearl,总之松散型语言就是不需要定义变量的语言。

© www.soinside.com 2019 - 2024. All rights reserved.