要说 JavaScript 和其他较为常用的语言最大的不同是什么,那无疑就是 JavaScript 是函数式的语言,函数式语言的特点如下:函数为第一等的元素,即人们常说的一等公民。就是说,在函数式编程中,函数是不依赖于其他对象而独立存在的(对比与Java,函数必须依赖对象,方法是对象的方法)。
面向对象编程思想在提出之后,很快就流行起来了,它将开发人员从冗长,繁复,难以调试的过程式程序中解放了出来,过程式语 言如 C ,代码的形式往往如此:C代码 Component comp; init_component(& comp, props); 而面向对象的语言如 Java ,则会是这种形式:Component comp; comp.init(props);
闭包向来给包括 JavaScript 程序员在内的程序员以神秘,高深的感觉,事实上,闭包的概念在函数式编程语言中算不上是难以理解的知识。如果对作用域,函数为独立的对象这样的基本概念理解较好的话,理解闭包的概念并在实际的编程实践中应用则颇有水到渠成之感。
正则表达式是对字符串的结构进行的形式化描述,非常简洁优美,而且功能十分强大。很多的语言都不同程度的支持正则表达式,而在很多的文本编辑器如 Emacs,vim,UE 中,都支持正则表达式来进行字符串的搜索替换工作。UNIX 下的很多命令行程序,如 awk,grep,find 更是对正则表达式有良好的支持。
JavaScript 的数组也是一个比较有意思的主题,虽然名为数组(Array),但是根据数组对象上的方法来看,更像是将很多东西混在在一起的结果。而传统的程序设计语言如 C/Java 中,数组内的元素需要具有相同的数据类型,而作为弱类型的 JavaScript,则没有这个限制,事实上,JavaScript 的同一个数组中,可以有各种完全不同类型的元素。
函数,在 C 语言之类的过程式语言中,是顶级的实体,而在 Java/C++ 之类的面向对象的语言中,则被对象包装起来,一般称为对象的方法。而在 JavaScript 中,函数本身与其他任何的内置对象在低位上是没有任何区别的,也就是说,函数本身也是对象。
本章将聚焦于 JavaScript 中的基本概念,这些概念与传统语言有比较大的不同,因此单独列出一章来做专门描述,理解本章的概念对书中后续章节的概念,代码的行为等会有很大的帮助,读者不妨花比较大的时间在本章,即使你对 JavaScript 已经比较熟悉,也建议通读本章。
Javascript 简史在 20 世纪 90 年代,也就是早期的 WEB 站点上,所有的网页内容都是静态的,所谓静态是指,除了点击超链接,你无法通过任何方式同页面进行交互,比如让页面元素接受事件,修改字体等。
UNIX 系统有一个非常灵活和强大的日志系统,它让你能够记录几乎任何你能想象的东西,然后你可以操作日志来获取你需要的信息。许多版本的 UNIX 提供了一个名为 syslog 的通用日志工具,有信息需要记录的单独程序要将信息发送到 syslog。Unix syslog 是一个主机可配置的,统一的系统日志工具。该系统采用集中式的系统日志进程,其运行程序 /etc/syslogd 或者 /etc/syslog。
本教程的目的是介绍一些可用的免费性能分析工具来对 UNIX 系统性能进行监控和管理,并提供了如何分析和解决 UNIX 环境中性能问题的指导。
函数允许你将一个脚本的整体功能分解成更小的逻辑子部分,然后当需要的时候可以被调用来执行它们各自的任务。使用函数来执行重复性的任务是一个创建代码重用的很好的方式来。代码重用是现代面向对象编程的原则的重要组成部分。Shell 函数类似于其他编程语言中的子程序和函数。
什么是替代?当它遇到包含一个或多个特殊字符的表达式时 Shell 执行替代。例以下是一个例子,在这个例子中,变量被其真实值所替代。同时,“\n” 被替换为换行符: #!/bin/sh a=10 echo -e "Value of a is $a \n"这会产生以下结果。在这里 -e 选项可以解释反斜杠转义。
循环是一个强大的编程工具,可以使您能够重复执行一系列命令。针对 Shell 程序员,有 4 种循环类型:while 循环for 循环until 循环select 循环根据不同的情况使用不同的循环。例如只要给定条件仍然是 true,while 循环将执行给定的命令。而 until 循环是直到给定的条件变成 true,才会执行。一旦你有了良好的编程实践,你就会开始根据情况使用适当的循环。
编写 Shell 脚本时,可能存在一种情况,你需要在两条路径中选择一条路径。所以你需要使用条件语句,确保你的程序做出正确的决策并执行正确的操作。UNIX Shell 支持条件语句,这些语句基于不同的条件,用于执行不同的操作。在这里,我们将介绍以下两个决策语句:if……else语句case…… esac语句if……else 语句:if……
一个 Shell 变量只能够容纳一个值。这种类型的变量称为标量变量。Shell 数组变量可以同时容纳多个值,它支持不同类型的变量。数组提供了一种变量集分组的方法。你可以使用一个数组变量存储所有其他的变量,而不是为每个必需的变量都创建一个新的名字。Shell 变量中讨论的所有命名规则都将适用于命名数组。定义数组值一个数组变量和一个标量变量之间的差异可以解释如下。
变量就是被赋值后的字符串。那个赋给变量的值可以是数字、文本、文件名、设备或其他类型的数据。 本质上,变量就是执行实际数据的指针。Shell 可以创建、赋值和删除变量。 变量名变量名仅能包含字母、数字或者下划线。约定俗成的,UNIX Shell 的变量名都使用大写。
UNIX 中一个重要的概念是环境,它是由环境变量所定义。一些环境变量是由系统设置,有一些是由用户设置的,还有一些是被 Shell,或任何会加载另一个程序的程序所设置。一个变量是由一个字符组成的串,并且我们会给它赋值。给变量赋的值可以是一个数字,文本,文件名,设备或任何其他类型的数据。
目录是一个文件,它的作用是存储文件的名称和相关的信息。所有的文件,无论是普通,特殊,或目录都包含在目录中。UNIX 使用层次结构来组织文件和目录。这种结构通常被称为一个目录树。树上有一个根节点,斜杠字符 (/),所有其他目录包含在它之下。主目录主目录是当您第一次登录时所在的目录。您的大部分工作将在主目录及您自定义的子目录中完成。
在 UNIX 中的所有数据被都组织成文件。所有文件被都组织成目录。这些目录被组织成一个称为文件系统的树状结构。当您使用 UNIX 时,你将花费大部分时间用一种方式或另一种方式去处理文件。本教程将教你如何创建和删除文件,复制和重命名它们,创建链接到它们等。在 UNIX 中有三种基本类型的文件:普通文件: 一个普通的文件是系统上包含数据、 文本或程序指令的文件。
UNIX 操作系统是一系列的程序,将计算机和用户联系在一起。分配系统资源和协调计算机内部的所有详细信息的计算机程序被称为操作系统或内核。用户通过一个称为 Shell 的程序内核进行通信。Shell 是一个命令行解释器; 它将用户输入的命令进行转换,并将它们转换为一种可以使内核理解的语言。
关注时代Java