JS程序设计基础

Posted 张萤莹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS程序设计基础相关的知识,希望对你有一定的参考价值。

一、什么是软件?什么是程序?什么是计算机语言?

软件:是完成某些特定功能,一到多个程序文件的组合。

程序:完成指定功能的指令。

计算机语言:人与人之间沟通使用的是自然语言。人与计算机进行沟通就使用的是计算机语言。换句话说,计算机语言就是用来和计算机进行交流的。

沃斯:程序 = 数据结构 + 算法

程序和软件之间的关系,就类似于生活中博客和书的关系。

 

 

二、计算机语言的发展史

计算机语言是从二十世纪40年代开始,大致分为3个阶段:

第一代计算机语言:机器语言:机器语言全部都是有0和1组成。可以被计算机直接执行。但是,这样的语言不便于理解和记忆。

第二代计算机语言:汇编语言:汇编语言并不比机器语言高级多少。因为汇编语言其实就是机器语言的一种助记符。虽说汇编语言只是一种助记符,但是确实相比机器语言,它的易读性更高

第三代计算机语言:高级语言:高级语言的话更加接近我们平时所使用的自然语言。

高级语言以1980年代为一个分界点:80年代之前的语言都是结构化语言,80年代之后都是面向对象语言。

 

 

三、解释器和编译器

使用高级语言写出来的代码,计算机是不能直接执行的,中间需要一个翻译的过程。

翻译器有两种:

编译器:一次性将我们写出来的程序转换为二进制。类似于生活中将整本外语书翻译成中文。

常见的编译性语言:C#  Java 

 

解释器:逐行进行解释。类似于同声传译。

常见的解释性语言:php  javascript  Ruby

相比解释性语言,编译性语言的速度更快。但是解释性语言比编译性语言更加灵活。

 

 

四、程序设计的步骤

编写程序类似于我们的盖楼房,需要先有一定的步骤

(1)分析问题

我们在进行程序开发之前,首先需要进行的就是分析问题。我们必须明确问题是什么?用户需求是什么?

(2)确定数据结构和算法

数据结构:怎样将数据存入到计算机里面。

算法:解决问题的方法和步骤

(3) 编制程序

开始敲代码实现具体的功能

(4)调试问题

我们写出来的代码,99%都是会出现错误的。接下来我们就需要对这些错误进行调试,直至达到预期结果。

一定程度来讲,我们的代码不是写出来的,而是调试出来的。

 

 

五、常见的错误类型

(1)语法错误

这种错误类型是无法通过编译的。这种错误是最容易发现和修改的。

(2)逻辑错误

这种错误是都符合语法规范,代码能够通过编译,但是逻辑思维有问题,导致不能得到预期的结果。这种错误往往比较难发现

(3)开发错误

往往是指开发的时候偏离了用户需求

(4)运行错误

语法,逻辑,开发方向都是正确的,这种错误往往出现于整个程序的算法有问题。这种算法导致内存泄露,存储空间不足等。所以这个时候需要换一个算法

 

 

六、算法:所谓算法,就是指解决问题的方法和步骤。

算法可以分为两大类:数值型运算算法和非数字型运算算法

数值型运算算法:求解数值,得到一个数值的答案

非数值型运算算法:往往应用事务的管理领域,比如搜索引擎,增删改查

 

算法的特性:

一般来讲,算法有5个特点:

(1)有穷性

一个算法应该包含有限的操作步骤而不能是无限的。

(2)确定性

算法中的每一个步骤都应该是有意义的,而不应该是含糊的,模棱两可。

(3) 有零个或者多个输入

根据算法的不同,有些算法在实现的过程汇总,需要输入一些原始的数据

(4)有一个或者多个输出

设计算法的最终目的就是为了解决问题,所以每个算法至少应该有一个或者多个输出。

(5)有效性

每一个步骤都是能够有效执行的。

 

 

七、算法的表示

算法的表示方法非常的多,例如:自然语言表示法,伪代码表示法,流程图表示法,N-S表示法。

(1) 自然语言表示法

就是利用我们平时所使用的语言,例如中文,英文来表示算法。

例如:交换墨水瓶

第一步:需要一个空瓶

第二步:将黑墨水瓶里面的黑墨水倒入空瓶

第三步:将蓝墨水瓶里面的蓝墨水倒入空的黑墨水瓶

第四步:空瓶中的黑墨水倒入空的蓝墨水瓶

第五步:交换完成

(2) 伪代码表示法

介于自然语言和计算机语言之间的一种方式。使用一些文字和符号来对算法进行表示。

例如:交换墨水瓶

第1步:A:黑墨水瓶   B:蓝墨水瓶   C:空瓶

第2步:A → C (黑墨水倒入空瓶)

第3步:B → A (蓝墨水倒入黑墨水瓶)

第4步:C → B (空瓶中的黑墨水倒入蓝墨水瓶)

第5步:交换结束

(3) 流程图表示法

流程图又称之为框图,它用规定的一系列的图形和流程线来表示算法。

 

以上是关于JS程序设计基础的主要内容,如果未能解决你的问题,请参考以下文章

JS程序设计基础

node.js教程基础:第一个node.js程序

JS高级程序设计笔记-ECMA基础

JS基础 模块设计

js基础心得

JS设计模式基础