【问题标题】:What is the difference between VB and VBScriptVB和VBScript有什么区别
【发布时间】:2010-11-25 22:11:08
【问题描述】:

VB和VBScript有什么区别?

【问题讨论】:

标签: vb6 vbscript language-features


【解决方案1】:

VB 是一种成熟的编程语言,可用于创建已编译的应用程序,而 VBScript 是 VB 的子集,是一种可用于运行一组命令的脚本语言,类似于旧的学校 DOS 批处理文件。一般来说,脚本语言不能用于创建成熟的二进制应用程序,也不能编译成可执行的二进制文件。

【讨论】:

    【解决方案2】:

    VBScript是VB的变种,就像VB6VBAVB.NET一样。它们都是不同的,some of them dramatically so

    【讨论】:

      【解决方案3】:

      这是一个非常古老的问题,但现有的答案非常模糊,并且/或者无法确定最重要的内容,而这些答案不仅仅是完全错误的。不会重复其他答案已经表明的内容,但其他答案中缺少以下差异:


      范围

      VBScript 代码不需要 过程范围:它可以写成一个 [drumroll] script 只执行一堆过程自上而下的操作。

      在 VB6/VBA 可执行语句中只能存在在过程范围内。


      类型

      在 VBScript 中,所有内容(变量、函数返回值等)都是 Variant(即几乎是 duck,就像在 JavaScript 中一样)。声明变量时声明显式类型是非法的。 As 关键字是非法的!

      在 VB6/VBA 中,默认为隐式 Variant,但 VB6/VBA 代码在适用的情况下使用显式类型。

      【讨论】:

      • 范围没有丢失,VBScript 仍然具有全局、类和过程范围的变量。就个人而言,如果我正在编写 VBScript,而不管它是否可以写成一堆命令,我更喜欢给它结构。
      • @Lankymart 我并不是说范围丢失了——我是说它们必须存在。这是它与其他风格之间相当大的区别,其中可执行语句必须在过程范围内。我的意思是“缺少”,就像“缺少其他答案”一样。
      • 根据定义,在 VBScript 中的过程或函数之外编写的任何内容都在全局范围内。
      • @Lankymart 那是 3.5 年后......但是是吗?关于作用域的要点仍然存在:VBScript 允许您在过程主体之外拥有可执行语句,而 VB6/VBA 则不允许,这样做是编译时错误。
      【解决方案4】:

      VBScript 是 Visual Basic 的“轻量级”子集,具有有限的语法,用于脚本目的(如日常任务自动化)而不是应用程序开发。

      虽然 Visual Basic 代码被编译成二进制可执行文件,但 VBScript 代码在宿主环境(例如 Windows Script Host 或 Internet Explorer)中被解释和运行。

      【讨论】:

        【解决方案5】:

        VBScript 的代码也可以在 VB6 中运行。也许这会让你感到困惑。
        但是VB6的所有代码都不能在VBScript中运行。

        【讨论】:

        • 错了。 VBScript 可执行文件可以在过程范围之外编写;不在 VB6 中。
        • @Mat's Mug,什么是“VBScript 可执行文件”? (除了一些嵌入在 VB.net 包装器或类似文件中的黑客行为,我不知道这样的事情),至于“程序范围之外”,假设读者有头脑,只是碰巧没有遇到这个术语.请解释(如果可以的话,请解释一下(而不是在“你被认为是一位读心大师的说法”中:-)。我怀疑您的意思是您可以像原始 QB 一样在“模块”标头中编写代码?
        • @user1863152 嗯,好像少了一个字。我的意思是“可执行 语句”,即 VBScript 代码不像 VB6 代码那样要求被限定 - 换句话说,VB6 不能运行任何 VBS 代码,至少不是没有修改,无论它们可能需要多小。
        【解决方案6】:

        VB 是应用程序开发工具(如桌面、基于 Web 的应用程序)

        而VB脚本是脚本语言,不能独立开发应用。

        【讨论】:

          猜你喜欢
          • 2011-04-21
          • 1970-01-01
          • 1970-01-01
          • 2010-11-15
          • 1970-01-01
          • 1970-01-01
          • 2010-11-29
          • 2023-04-07
          • 2020-07-25
          相关资源
          最近更新 更多