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


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

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

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

给TA打赏
共{{data.count}}人
人已打赏
未分类

当我在新电脑上用Visual Studio运行ASP.NET MVC时,我向它提出的每一个请求都会自动重定向到微软的登录。

2022-9-8 22:55:22

未分类

异常在构造函数try块中被捕获,并被处理,但仍然会被第二次重抛。

2022-9-8 22:55:24

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索