什么是脚本,脚本语言?

一、脚本

百科解释:

脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件

脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当我们点击网页上的E-mail地址时能自动调用Outlook Express或Foxmail这类邮件软件,就是通过脚本功能来实现的。也正因为脚本的这些特点,往往被一些别有用心的人所利用。例如在脚本中加入一些破坏计算机系统的命令,这样当用户浏览网页时,一旦调用这类脚本,便会使用户的系统受到攻击。所以用户应根据对所访问网页的信任程度选择安全等级,特别是对于那些本身内容就非法的网页,更不要轻易允许使用脚本。通过“安全设置”对话框,选择“脚本”选项下的各种设置就可以轻松实现对脚本的禁用和启用。

 

通俗解释:

脚本(Script)的意思最早是从演艺界来的。如果没有脚本,该怎么表演? 表演者只能即兴发挥,或者靠导演的口述来进行。

有了脚本,带来的最大变化是什么?

  • 可重复。也就是说,有了脚本,可以把我们既定的一个规程不断重复。
  • 脚本需要人来执行。因此脚本的执行效率与具体的执行人有关系。
  • 如果在表演过程中,商定了某种大家认可的修改,会考虑对脚本进行修改,用以将我们修改的意图记录下来,将来的再现就可以反映这个修改。

对于 IT 行业,脚本这个词,是个绝妙的翻译。他贴切的表达了这几个含义(web前端开发中scripts文件下有.js文件就是脚本)。

  • 脚本的用意是为了可再现的重复一个设定好的规程。
  • 脚本需要有一个解释器来执行。
  • 脚本能够方便的,快速的,经常的被修改。

所以说,要是打比喻:

你打开资源管理器,用鼠标把一个文件拖到另外一个地方,这是即兴表演。

你写几行命令,把他保存下来, 一执行就做了上面的事情,这就是脚本。

即兴表演,你重复100次,累死了。

脚本,你重复执行100次,全是计算机搞定了

假设你经常从网上下东西,全都放在 D 盘那个叫做 downloads 的文件夹里。而你有分类的癖好,每周都要把下载下来的图片放到 pic 文件夹里,pdf 放到 book 文件夹里,mp3 和 wma 文件放到 music 文件夹里。手动分了一年之后你终于厌倦了,于是你打开记事本,写了以下的三行字:

  • copy /Y D:\download\*.jpg D:\pic\
  • copy /Y D:\download\*.pdf D:\book\
  • copy /Y D:\download\*.mp3 D:\music\

然后把它存成一个.bat 文件。想起来的时候你就双击一下这个文件,然后就发现 download 里的三类文件都被拷到它们该去的地方了。这就是个非常简单的脚本。

 

 

二、脚本语言

脚本语言泛指单用作简单編程任务(如shell scripts)。

编程语言:

  • 机器语言:0和1,人类几乎没办法阅读、理解
  • 汇编语言:由一些特定指令构成,学习成本比较高;在底层做一些驱动,体积小,运行效率高
  • 高级语言:c、c++、java、php、python、javascript等

脚本语言是:

  • 一种介乎于 HTML 和诸如 JAVA 、 Visual Basic 、 C++ 等编程语言之间的一种特殊的语言。
  • 尽管它更接近后者,但它却不具有编程语言复杂、严谨的语法和规则。
  • 常见的脚本语言有:Python、JavaScript、

动态程序一般有两种实现方式,一是二进制方式,一是脚本方式。

  1. 二进制方式是先将我们编写的程序进行编译,变成机器可识别的指令代码(如.exe文件),然后再执行。这种编译好的程序我们只能执行、使用,却看不到他的程序内容。
  2. 脚本简单地说就是一条条的文字命令,这些文字命令是我们可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。

我们上面提到的各种动态语言,如Python、ASP、PHP、CGI、JSP等,都是脚本语言
 

系统语言与脚本语言之间的区别有很多,但主要的区别是:

  • 1、抽象的级别:这是最重要、最明显示的不同。脚本语言对程序员提供了更高级的抽象。这明显表现在:在这种语言自身中,存在有高级的数据结构,如列表和字典结构,和对这种结构简单方便的嵌套和操作。这样可以创建非常成功的程序。
  • 2、类型定义:系统语言通常是强类型和静态类型定义。这就意味着所有变量的类型要在程序中指定,在编译时检查。相反地,脚本语言是最松散的类型定义,完全没有类型声明,并且在运行时进行动态类型检查。
  • 3、执行:系统语言的特点是编译的。程序被编译成可执行的二进制。另一方面,脚本语言的特点是解释,也就是,指令被立即执行,不存在一个编译的中间状态。这就意味着脚本语言是交互式的(你可以在提示符下敲入命令,并且看到结果),这是另一个巨大的胜利。这样完全将编译过程从编辑-编译-运行循环中去掉了。
  • 4、速度:以上三点是脚本语言一方面在速度与效率, 一方面在易用性与表示式的强大性之间进行折衷的典型例子。这就使得脚本语言的执行速度比系统语言慢一个数量级。这就是对脚本语言诽谤最多的方面。性能的降低不是真正的问题,因为思想是用脚本语言来组合组件,这些组件是用象C 这样的快速系统语言来编写的。所以所有需要运行快速的东西将因为是用快速的语言实现的而运行得快速。

脚本语言只用于将东西绑在一起,并且这些通常不是性能的瓶颈( 或如果是,你需要重新检查你的设计)。

 

三、总结

  1. 脚本就是给机器一行一行执行的文本
  2. Bash 脚本有 Bash 脚本的语法,Node.js 脚本有 JS 语法
  3. 不管是那种脚本,能实现的功能都差不多,只是语法不同
  4. Bash 脚本的语法挺奇葩的,比如 $1 $# 等符号
  5. 不用特别去学 Bash 脚本的用法,遇到不会的就 Google
  6. 不用特别去学 Node.js 脚本的用法,遇到不会的就 Google
  7. 新人写代码最大的问题就是「抄错了」
    1. 多写了一个空格
    2. 少写了一个空格
    3. 单词拼错了
    4. 没有加分号
    5. 多加了分号
  • 289
    点赞
  • 801
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值