【问题标题】:What does it mean that JavaScript is "dynamic"?JavaScript 是“动态的”是什么意思?
【发布时间】:2015-12-05 06:04:36
【问题描述】:

我从不同的来源(例如 wiki、文章等)阅读了编程意义上的动态意味着什么。 Wikipedia 讨论了动态编程语言如何在运行时执行某些编程行为(与静态语言的编译时间相反),但他们的解释很模糊,并讨论了这些行为在难度、复杂性和性能成本方面如何变化编程语言。

那么就 JavaScript 而言,它是动态的是什么意思?

我可能完全错了,但也将 JavaScript 理解为一种动态类型的语言,因为在实例化变量/函数(例如 var、函数 jsFunction())之前没有说明类型,而不是静态类型类型化语言,如 Java,在实例化变量/函数之前定义类型(例如 int var、public int function())。

这和这些有关系吗?

【问题讨论】:

  • 我认为动态这个词可能会根据上下文指代不同的概念,所以我想您应该提供您所指的来源,我们可以尝试找出动态在 中的含义 上下文。
  • 只需深入了解您提供的链接,它解释了他们将 Javascript 称为 dynamic 的方式...en.wikipedia.org/wiki/JavaScript#Dynamic
  • @Archer 但特别是对于 Javascript 在运行时发生的事情我也很好奇
  • @AndreaCasaccia 我在我的帖子中链接到 wiki 文章,谷歌搜索对一堆其他随机的文章很有帮助 XD
  • Javscript 运行后可以修改。例如,单击按钮可以加载更多脚本,或修改(覆盖)现有函数。您还可以随意修改对象结构。此外,没有什么是强类型的,这意味着您可以在运行时操作几乎所有内容。如果您对想做的事情有特定的疑问,那么您应该对此进行调查。我认为您不太了解您发布的问题的广泛性(和模糊性)。

标签: javascript dynamic static


【解决方案1】:

大多数语言都有动态行为的某些方面。即使是静态类型的语言也可以具有动态或变体数据类型,其中可以包含不同的数据类型。

JavaScript 被称为动态语言,因为它不仅有一些动态方面,而且几乎所有内容都是动态的。

所有变量都是动态的(包括类型和存在),甚至代码也是动态的。您可以在运行时创建新变量,变量的类型在运行时确定。您可以随时创建新功能,或替换现有功能。在浏览器中使用时,加载更多脚本文件时添加代码,您可以随时加载更多文件。

如今 JavaScript 在许多实现中都被编译,并且在后台生成静态代码和静态类型。但是,行为仍然是动态的,编译器仅在发现动态方面没有用于特定对象时才生成静态类型。

【讨论】:

  • 当然,我从不同的文章中读到了很多你写的东西。 +1 实际上是建设性的。因此,对于 JavaScript 的具体含义,似乎没有细线/直截了当的答案。
  • 一点上下文:一家顶尖科技公司的软件工程师直接问我 JavaScript 是如何动态的,希望得到更多直接的答案。
  • @OpMt:没错,没有确切的规则。它之所以被称为动态语言,主要是因为它旨在成为一种语言,而语言设计中的选择可以看出这一点。
  • 另外,对象是动态的。 eval 非常有活力。最重要的是,继承是动态的。
【解决方案2】:

JS 是动态的最有意义的定义明确的方式是它是动态类型的:该语言具有数据类型,但在程序实际运行之前不会检查程序的类型是否“正常”。相反的是静态类型,这意味着程序的类型由程序验证,该程序在运行之前检查其源代码。 (例如,Java 和 ML 是静态类型的。)

【讨论】:

    猜你喜欢
    • 2017-06-11
    • 2013-11-02
    • 2011-11-01
    • 2015-07-15
    • 2018-07-17
    • 1970-01-01
    • 2015-01-03
    • 2011-04-16
    • 2011-06-20
    相关资源
    最近更新 更多