欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    描述性程序设计语言DeclarativeLanguages.ppt

    • 资源ID:6417676       资源大小:2.24MB        全文页数:233页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    描述性程序设计语言DeclarativeLanguages.ppt

    描述性程序设计语言Declarative Languages,Declarative Languages,Declarative,Imperative,Concurrent,Deterministic,更关注描述冯诺依曼机如何执行,冯诺依曼单机,网络环境,小规模软件,大规模软件,不同的软件开发方法,更关注如何描述问题本身,更脱离实际运行环境,Declarative Languages,走出去:某一个环境下编写的程序要能在其他环境下执行。请进来:其他环境下编制的程序要能为我的环境所使用。,走出去,平台无关(编程语言)放置标示脚本解释,走出去,源程序经过编译生成的目标码是与本地机紧密相关的。表现在:基本类型定义与及其字长相关;各机指令集不一,操作效果相当,实现过程有微小的差别;同一语言在相同编译和执行环境下,同一程序执行速度不一(硬件差异,优化次数);,平台无关,可移植性(portability)-为减少开发费用和开发时间。程序员可移植:用户会了某种语言到任何能实现该语言的环境上即可编制程序而不需其它知识 程序可移植:在该语言的某个环境上编制的程序拿到有该语言实现的另一个环境上可以照样运行,程序的计算,语义不变。,平台无关,已采用增加可移植手段。设预定义环境(包)Ada;分出头文件-宏-编译文件C;,平台无关,网络计算的兴起使可移植性上升为平台无关性。,平台无关,局域网时代,需要在局域网内实现信息共享,有协作计算需求。网络协议栈实现了数据的平台无关;以文件共享形式实现;客户/服务器模式,程序可以不共享;只要局域网内使用相同或相互兼容的平台,也可以实现程序的共享。,平台无关,Internet时代,对资源共享提出了新的要求:局域网的规模和结构是可控制的;但是,没有任何个人和机构可以控制Internet的构成。WWW(World Wide Web)是Internet上最广泛的信息发布/浏览方式。与FTP等以往的方式相比较,WWW具有较强的动态性和交互性,需要完成复杂的应用(如电子商务等)因此,共享资源不但包括数据,也应包括程序。这就需要一种平台无关的语言。激烈的竞争迫使软件生产者不断降低开发成本,缩短开发周期。平台无关语言使开发者不需要为一个软件开发多个操作系统的版本,减少了开发费用和时间。,平台无关,平台无关语言(编程语言)的实现:传送源代码 将源代码传送到目标机,先经过编译,生成目标机代码,再执行。前提是必须有不同平台的编译器,这种情况往往在编译时缺乏源代码原有的环境信息(全程量),且只能先编译存入目标码再运行。局域网时代服务器已经做过了。要实时运行只能是解释(也要求有完整的信息)型语言。传送目标代码 只有在相同或相互兼容的平台之间才可以实现。如在Windows NT/9x组成的局域网中,可以在一台机器上调用执行其它机器上的应用程序。传送中间代码 中间代码由源代码经过编译生成。中间代码经过优化。中间代码传送到目标机上由解释器解释执行。Java语言使用的是这种方式。,Java对平台无关性的支持方法,保留了高级语言的主要机制与C+基本相同的字符集、标识符、关键字、运算符、特殊符号比C+更加强化类型。增加了布尔类型,只保留数组类型;使用真正的类型转换(C+中的类型转换是“伪”的,目的是为了通过编译器的检查;Java中的类型转换在运行时真正发生,如果不能转换,系统会抛出异常)保留声明、作用域、变量、表达式、语句、三种结构化控制;保留并增强C+的异常;,与C+相似的面向对象机制:类作为特殊类型、构造函数、初始化序列、实例变量、this/super、方法的覆盖与重载、成员可见性。取消了C+不利于网络应用的机制:指针。以对象引用代替指针;取消头文件和预处理器(宏与机器相关);C+中原有冗余:struct、union都被类代替;不支持模板,动态束定功能可实现;取消typedef;不支持运算符重载;,平台无关,编译解释执行。Java语言实现平台无关的关键是使用了“编译-解释”执行方式。Java源代码经过编译,称为Java字节代码(byte-code)。Java虚拟机(VM)是字节代码的解释器。JavaVM是用软件构造的一个虚拟计算机,它由虚拟的寄存器、内存、堆栈等;字节代码就是这台虚拟计算机的指令。所有操作系统上的JavaVM执行一致的指令,这样,就屏蔽了各个平台之间的差异(如下图所示)。,Java虚拟机是平台无关性的关键,在不同的操作系统上有不同的Java虚拟机,向上有一致的接口(虚拟机的指令字节代码),向下针对不同的操作系统有不同的实现方式。,平台无关,即时编译(JIT:Just-in-Time Compile)。使用即时编译是为了提高Java程序的执行效率,是对Java解释器的改进。即时编译在虚拟机解释执行Java字节代码时发生。当虚拟机第一次调用某个方法时,不再直接解释这个方法的字节代码,而是用即时编译器将这个方法的字节代码编译成为本机目标代码,然后执行这些目标代码。即时编译不是将整个类的字节代码进行一次性编译,而是只编译正在执行的函数,“边执行,边编译”。,平台无关,小程序(applet)的传递运行方式小程序是可以在Web浏览器中执行的Java程序;Web浏览器中有一个Java虚拟机,和浏览器一起构成小程序的运行环境;浏览器根据HTML文档中的标志,从指定的URL下载小程序的类字节码(.class文件),装入到Java虚拟机中运行;小程序的出现提高了Web页面的交互性和动态性,使浏览器能够完成更加复杂的应用。Java虚拟机有内置的类装入机制,从文件系统或网络中下载类代码,然后在虚拟机中运行。浏览器下载运行小程序只是一个特例,这种机制可以被所有Java应用程序使用。,即时编译(JIT:Just-in-Time Compile)。使用即时编译是为了提高Java程序的执行效率,是对Java解释器的改进。即时编译在虚拟机解释执行Java字节代码时发生。当虚拟机第一次调用某个方法时,不再直接解释这个方法的字节代码,而是用即时编译器将这个方法的字节代码编译成为本机目标代码,然后执行这些目标代码。即时编译不是将整个类的字节代码进行一次性编译,而是只编译正在执行的函数,“边执行,边编译”。,小程序(applet)的传递运行方式小程序是可以在Web浏览器中执行的Java程序;Web浏览器中有一个Java虚拟机,和浏览器一起构成小程序的运行环境;浏览器根据HTML文档中的标志,从指定的URL下载小程序的类字节码(.class文件),装入到Java虚拟机中运行;小程序的出现提高了Web页面的交互性和动态性,使浏览器能够完成更加复杂的应用。Java虚拟机有内置的类装入机制,从文件系统或网络中下载类代码,然后在虚拟机中运行。浏览器下载运行小程序只是一个特例,这种机制可以被所有Java应用程序使用。,Java虚拟机技术 虚拟机技术作为一门综合技术几乎体现了当代程序设计语言设计与实现技术的各个方面。Java虚机要实现Java的面向对象程序:类装入及实例对象生成,对象交互(引用方法);获得核心类库支持;线程运行;处理异常;作无用单元自动收集。,虚机执行过程如下,Java虚机的体系结构,虚机技术进展,第一代JVM直接解释执行字节代码文件第二代JVM及时编译方案,它的执行效率大写提高,约为解释执行的6-10倍。第三代JVM采用近年发展出的动态编译技术。第三代虚拟机只编译运行时间长的热点,混用解释和编译后的机器码,效率最高。是当今发展前沿。,第一代JVM直接解释执行字节代码文件,第二代JVM及时编译方案,第三代JVM采用近年发展出的动态编译技术。,走出去,平台无关放置标示脚本解释,放置标示,标记语言/置标语言不是程序设计语言,是电子文档发展以后,以计算机或网上自动处理电子文档而设计的语言。它们一般解释执行,平台无关。电子文档三类标准:信息的基本表达,信息结构描述,电子信息再现处理。,放置标示,置标语言就是定义标记及其使用规则的语言。它不属于程序设计语言,因为它不能按任意计算模型,设计算法进行计算,仅仅是描述文档,围绕文档的增、删、改、并的“计算”。80年代早已有许多软件系统采用标记,为Telx,PostScript等。它们采用过程式置标,即告诉计算机为何一步一步地生成合乎预想的文档。描述性置标不管过程,只按文档最后形式描述文档的结构。标记是“标题”、“第一段”、“第二节”、“空一行”最后的显现各机可用不同的软件、不同的过程实现。描述只关注数据的内在相互关系。,放置标示,标记语言/置标语言:SGML:Standard Generalized Markup LanguageHTML:HyperText Mark-up Language XML:Extensible Markup Language,置标语言,表示性的置标语言(Presentational markup)是在编码过程中,标记文档的结构信息。过程性置标语言(Procedural markup)一般都专门于文字的表达,但通常对于文本编辑者可见,并且能够被软件依其出现顺序依次解读。描述性置标(Descriptive markup),所描述的是文件的内容或结构,而不是文件的显示外观或样式,制定SGML的基本思想就是把文档的内容与样式分开,XML、SGML都是典型的通用置标语言。,标准通用置标语言SGML,SGML(Standard Generalized Markup Language)是ISO(国际标准化组织,International Standards Organization)在1986年推出的一个用来创建标识语言的语言标准。SGML是一种用来定义标识的语言,它提供了一种将数据内容与显示分离开来的数据表示方法,使得数据独立于机器平台和处理程序。SGML也被称作元语言(metalanguage),后来的许多标识语言都采用了SGML的标识方法,例如HTML、XML和XHTML。,SGML,SGML把文档看作是对象集合,对象即元素。每个元素是标记括着的内容,内容又可嵌入元素,这就形成树形分层体系结构。也是文档的逻辑结构。SGML 不涉及内容的语义。(1)SGML文档结构SGML的文档结构由有类型的元素(实例对象)组成、元素是由命名的起始标记和结束标记括着的正文单元。正文单元也叫内容。,例 SGML的文档实例这是一个文档实例,就元素而言,它给出了内容模型:The SICK ROSE O Rose thon art sick.The invisible worm,That flies in the night In the howling storm:Has found out thy bed Of crimson joy:Does thy life destroy/SGML的注释,SGML,(2)定义SGML文档结构在创建SGML文档实例时,首先要给出形式规格说明以指明该文档结构,即文档类型定义,简称DTD。DTD是对正文的解释。为了分析可以从不同角度定义DTD。例子中出现的各元素其形式声明如:,SGML,(3)并发结构同样一个文档结构,可从另一观点定义它,设按页的诗集:因为它最低层行题名和行都是一样的(#PCDATA),它们是并发定义的,可以写到一起:/A类型的A p.anth/B类型的B page/按B类型的DTD定义page元素,The SICK ROSE O Rose thou art sick.The invisible worm./page结束/另起一页 That flies in the night In the howling storm:/按A类型的DTD 定义stanza元素 Has found out thy hed Of crimson joy:And his dark crecret loe Does tyh life destroy./B类型的page结束/B类型的B结束/A类型的A结束这样定义的电子文档,当处理器只识别其中一个类型(有其定义),则自动跳过另一个类的标记。若二者都识别则由人指定其一。,SGML,(4)属性SGML的每个元素都可以定义属性或属性表。属性并不影响元素的内容,只是为显示,处理提供方便。在文档实例中要给出属性值,如:元素定义了两个属性一为标识id一为状态status,它们均在起始标记之中,只看有无属性名=属性值。,SGML,(5)实体为了跨文档间的可移植性,SGML提供了实体(Entity)概念。实体是置标文档的某一部分,可大可小,小到一字符串,大到整个正文文件。如有声明:第一句声明了名为tei的实体,也叫内部实体,其值(即内容)是引号中的那段正文,故也称正文实体。第二个声明的实体是ChapTwo,指明它是SYSTEM实体,本文档以外的外部实体,其值是名为sgmlmkup.txt的正文文件的全部内容。,SGML,(6)标记节标记节(Marked Section)是为了将一个主文档做成多个版一,即在一段正文中做出条件正文域标记,其形式是:(7)文档样式SGML只处理文档结构、内容,没有为文档样式(stgle)制定标准。,SGML,SGML十分庞大,不同业务需求取其不同子集。关键的问题是定制实现。至少,当前学习使用全集,既耗费资金又浪费精力。但作为学术研究是极有价值的。但SGML复杂度太高,不适合网络的日常应用,加上开发成本高、不被主流浏览器所支持等原因,使得SGML在Web上的推广受到阻碍。HTML和XML都是SGML的子集。,HTML,1989年Tim Berners-Lee在欧洲核物理实验室(CERN)开发出了超文本置标语言。它从SGML出发作出了它的应用实例。让用户只在HTML类型定义下为用户文档置标。简单地说,它只是一组给定标记集合。没想到这种固定格式的标记,由于其简洁性大获成功。1994-1995年Web站点发展起来HTML成为开发页面最广泛使用的工具。,HTML,超文本标记语言,即HTML(Hypertext Markup Language),是用于描述网页文档的一种标记语言。HTML是在 SGML定义下的一个描述性语言,或可说 HTML是 SGML的一个应用程式,HTML不是程式语言,它只是标示语言。HTML被用来结构化信息例如标题、段落和列表等等,也可用来在一定程度上描述文档的外观和语义。,HTML,HTML是SGML应用程序,它的文档模型也是树状结构模型。标记的约定和置标方式和SGML一样,只是文档类型定义DTD已由系统定义为HTML用户不必学习SGML复杂的语法,直接用标记定义实例文档。标记分以下四类:文档结构定义 字体字型定义 版面布局定义 链接定义 它的最大特点是超文本和多媒体。,HTML,HTML写的Web主页成了网上主要传递信息手段。(1)文档结构标记一个HTML文档 题名 下一级标题/可以嵌套6级,至N6./另起一段,无结束标记./另起一行,无结束标记,HTML,(2)文档页面格式标记分逻辑字符模式和物理字符模式。因为是逐词标记都是成对的。逻辑的 定义的单词/一般斜体 强调的单词/一般斜体 书或电影主题名/一般斜体 程序代码段/打印字体 键盘输入 计算机状态信息 特别强调词/黑体 代替变量的实例/斜体物理的。黑体 斜体 打印机字体,HTML,(3)版面布局标记 各种列表 标记列表及表项:/无号列表/有序号列表/表项/表项1/表项/表项2/至此结束/至此结束/定义列表/第一条目/与交替出现,对的测试/第二条目/对的测试/结束,XML,可扩展标记语言(Extensible Markup Language,XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是标准通用标记语言(SGML)的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。,XML,XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。,XML,XML文档的三种形式即第一种文档形式先形式化地定义文档的类型、元素、属性、实体的标记,再以这些标记定义文档实例。第二种形式是不作DTD的形式定义,但遵照文档模型直接置标写出文档实例。文档的标记必须是良定义(well-formed)的。第三种形式也不作完整的DTD形式定义,但可以引用已有的DTD定义。称之为合法(valid)的XML文档。,指出XML文档是否独立 是非常重要的,为此,所有XML文档的第一行必须是处理指令。,例 一个出版商清单/处理指令/以下文档实例 publishers of the Music of New York women composers ACA-American composers Alliance info http:/170 west 74th st.NY NY10023 212-362-8900 212-874-8605 Alfred Publishing/*/*15535 Morrison South Oaks CA 91403,第三种形式的XML文档也举一例子:例 一个合法的XML文档.,XML,XSL可扩展样式语言 XML文档通过XSL可扩展样式语言描述的样式表(它本身也是XML的文档),执行后产生一个HTML文档,即XSL把XML文档翻译为HTML文档显现。,XML 特点,XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。XML与HTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言XML去掉了一些繁杂的功能,保留了SGML的结构化功能,使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。,XML优点,XML有两个先驱-SGML和HTML,它既具有SGML的强大功能和可扩展性,同时又具有HTML的简单性。1.良好的可扩展性。XML允许各个不同的行业根据自己独特的需要制定自己的一套标记。2.内容与形式的分离。3.遵循严格的语法要求。XML不但要求标记配对、嵌套,而且还要求严格遵守DTD的规定。4.便于不同系统之间信息的传输。5.具有较好的保值性。XML的保值性来自它的先驱之一-SGML语言。,XML相关技术,单纯的XML是用来描述数据的,如果没有搭配适当的样式表,在Web浏览器中浏览XML文件时,只能看到XML文件的树形结构,这本身意义不大,所以需要借助一些相关技术。1.CSS2.DTD和XML Schema3.XML DOM4.XML XSLT5.XLink、XPionter和XPath,XHTML,XHTML 是 HTML 与 XML(扩展标记语言)的结合物。XHTML 包含了所有与 XML 语法结合的 HTML 4.01 元素。XHTML 是更严格更纯净的 HTML 代码。XHTML 的目标是取代 HTML。,XHTML,下面的 HTML 代码仍然可以工作得很好,即使它没有遵守 HTML 规则,HTML5的起源,HTML5 是 W3C(World Wide Web Consortium)与 WHATWG(Web Hypertext Application Technology Working Group)合作的结果。WHATWG 致力于 web 表单和应用程序,而 W3C 专注于 XHTML 2.0。在 2006 年,双方决定进行合作,来创建一个新版本的 HTML。,HTML5,HTML 5 的第一份正式草案已于2008年1月22日公布。HTML 5有两大特点:强化了 Web 网页的表现性能。追加了本地数据库等 Web 应用的功能。,HTML5建立的规则,新特性应该基于 HTML、CSS、DOM 以及 JavaScript。减少对外部插件的需求(比如 Flash)更优秀的错误处理更多取代脚本的标记HTML5 应该独立于设备开发进程应对公众透明,HTML5新特性,用于绘画的 canvas 元素用于媒介回放的 video 和 audio 元素对本地离线存储的更好的支持新的特殊内容元素,比如 article、footer、header、nav、section新的表单控件,比如 calendar、date、time、email、url、search,HTML5改进特征,HTML5提供了一些新的元素和属性,例如(网站导航块)和。这种标签将有利于搜索引擎的索引整理,同时更好的帮助小屏幕装置和视障人士使用。除此之外,还为其他浏览要素提供了新的功能,如和标记。,HTML5改进特征,1.取消了一些过时的HTML4标记其中包括纯粹显示效果的标记,如和,它们已经被CSS取代。2.将内容和展示分离b 和 i 标签依然保留,但它们的意义已经和之前有所不同,这些标签的意义只是为了将一段文字标识出来,而不是为了为它们设置粗体或斜体式样。u,font,center,strike 这些标签则被完全去掉了。,HTML5改进特征,3.一些全新的表单输入对象包括日期,URL,Email 地址,其它的对象则增加了对非拉丁字符的支持。HTML5 还引入了微数据,这一使用机器可以识别的标签标注内容的方法,使语义Web 的处理更为简单。总的来说,这些与结构有关的改进使内容创建者可以创建更干净,更容易管理的网页,这样的网页对搜索引擎,对读屏软件等更为友好。4.全新的,更合理的Tag多媒体对象将不再全部绑定在 object 或 embed Tag 中,而是视频有视频的Tag,音频有音频的 Tag。,HTML5改进特征,5.本地数据库这个功能将内嵌一个本地的SQL 数据库,以加速交互式搜索,缓存以及索引功能。同时,那些离线Web 程序也将因此获益匪浅。不需要插件的富动画。6.Canvas 对象将给浏览器带来直接在上面绘制矢量图的能力,这意味着用户可以脱离Flash 和Silverlight,直接在浏览器中显示图形或动画。7.浏览器中的真正程序将提供 API 实现浏览器内的编辑,拖放,以及各种图形用户界的能力。内容修饰Tag 将被剔除,而使用CSS。,audio 和 video 元素可以包含额外的标记,用来描述音频和 视频的内容。这对搜索引擎也有帮助。,使用HTML5开发的应用,在HTML5未成熟应用的时候,流媒体播放等一些精彩应用必须借助第三方软件才可以实现,比如Flash等。但是现在 HTML5已经将其超过,它不但可以播放视频和音频,而且还可以开发出各种网络在线应用程序,如标识的地理位置、离线存储、拖放、图片处理等。,处理图片,本网站使用了HTML5的Canvas元素来创建一个图层列表,通过从图片库选择图片添加后,会新建一个新的图层,每一层都可以通过操纵将图片进行:移动、缩放、旋转、改变图层上下级、删除层、改变透明度、改变混合模式、启用或禁用的图片阴影。网址:,地理定位,这个web应用程序会自动检测您所在的位置,然后使用谷歌地图返回附近的就业信息。不过需要注意的是,它要求分享您浏览器所处的地址信息。网址:,走出去,平台无关放置标示脚本解释,脚本解释,脚本语言(JavaScript,VBscript等)介于HTML和C,C+,Java,C#等编程语言之间。HTML通常用于格式化和链结文本。而编程语言通常用于向机器发出一系列复杂的指令。脚本语言与编程语言也有很多相似地方,其函数与编程语言比较相象一些,其也涉及到变量。与编程语言之间最大的区别是编程语言的语法和规则更为严格和复杂一些.脚本语言是一种解释性的语言,例如vbscript,javascript,installshield script等等,它不象cc+等可以编译成二进制代码,以可执行文件的形式存在.脚本语言不需要编译,可以直接用,由解释器来负责解释。脚本语言一般都是以文本形式存在,类似于一种命令.举个例子说,如果你建立了一个程序,叫aaa.exe,可以打开.aa为扩展名的文件.你为.aa文件的编写指定了一套规则(语法),当别人编写了.aa文件后,你的程序用这种规则来理解编写人的意图,并作出回应.那么,这一套规则就是脚本语言.,脚本解释,脚本语言假设已经存在了一系列由其他语言写成的有用的组件.脚本语言不希望随机地产生请求,他希望主要是把组件接在一起.脚本语言常用于扩展组件特性,但他们很少用于复杂的算法和数据结构;这些东西常由组件提供.脚本语言有时涉及胶着语言或系统整体语言.21世纪的高级程序语言。,脚本语言,脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。原则简单的方式快速完成某些复杂的事情,脚本语言特点,特点良好的快速开发高效率的执行解释而非编译执行和其它语言编写的程序组件之间通信功能很强大,脚本语言与高级编程语言,许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。,常用的脚本语言,C ShellJavaScriptNuvaPerlPythonGroovyRubyTclVBScriptCSSScala,JavaScript,JavaScript是一种运行在浏览器中的解释型的编程语言。为什么我们要学JavaScript?在Web世界里,只有JavaScript能跨平台、跨浏览器驱动网页,与用户交互。容易上手,但精髓却不为大多数开发人员所熟知,编写高质量的JavaScript代码很难。一个合格的开发人员应该精通JavaScript和其他编程语言。如果你已经掌握了其他编程语言,或者你还什么都不会,请立刻开始学习JavaScript,不要被Web时代所淘汰。,产生,JavaScript是由网景公司开发的一种跨平台,面向对象(object-oriented)的网页脚本语言(Web Script Language),是目前流行的网页特效设计语言。JavaScript代码可直接嵌入HTML文件中,随网页一起传送到客户端浏览器,然后通过浏览器来解释执行。,JavaScript概述,在HTML标记中直接写入JavaScript代码例:鼠标移过来,JavaScript概述,将JavaScript代码放入标记符中例如:document.write(欢迎您学习JavaScript!);,JavaScript概述,将代码独立存储为以.js 为扩展名的文件,利用SRC属性将该文件调入例如:welcome.js文件内容如下:document.write(欢迎您学习JavaScript!);,数据类型,数值(Number):包含整数或浮点数。逻辑值(Logical):取值为true或false。字符串(String):用单引号或双引号括起来的零个或多个单一的字符所组成。空值(null):表示没有值,取唯一值”null”,大小写敏感。未定义值(undefined):表示尚未定义值。注:null不能写成Null或NULL。null既不等于“0”,也不等于“空字符串”。因为“0”是数值,“空字符串”是字符串。键值对(Map):Key-Value表集合(Set):一组key的集合,数据类型,NumberJavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:123;/整数1230.456;/浮点数0.4561.2345e3;/科学计数法表示1.2345x1000,等同于1234.5-99;/负数NaN;/NaN表示Not a Number,当无法计算结果时用NaN表示Infinity;/Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity十六进制用0 x前缀和0-9,a-f表示,如:0 xff00,0 xa5b4c3d2。,数据类型,字符串以单引号或双引号括起来的任意文本,比如abc,xyz等等。布尔值布尔值和布尔代数的表示完全一致,一个布尔值只有true、false两种值,可以直接用true、false表示布尔值,也可以通过布尔运算计算出来:true;/这是一个true值false;/这是一个false值2=3;/这是一个false值!true;/结果为false!(2 5);/结果为true,数据类型,null和undefinednull表示一个“空”的值,它和0以及空字符串不同,0是一个数值,表示长度为0的字符串,而null表示“空”。在其他语言中,也有类似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。事实证明,区分两者的意义不大。大多数情况下,我们都应该用null。undefined仅仅在判断函数参数是否传递的情况下有用。,数据类型,数组数组是一组按顺序排列的集合,集合的每个值称为元素。JavaScript的数组可以包括任意数据类型。例如:1,2,3.14,Hello,null,true;/包含6个元素。数组用表示,元素之间用,分隔。另一种创建数组的方法是通过Array()函数实现:new Array(1,2,3);/创建了数组1,2,3数组的元素索引的起始值为0:var arr=1,2,3.14,Hello,null,true;arr0;/返回索引为0的元素,即1arr5;/返回索引为5的元素,即truearr6;/索引超出了范围,返回undefined,数据类型,对象JavaScript的对象是一组由键-值组成的无序集合,例如:var person=name:Bob,tags:js,web,mobile,city:Beijing,hasCar:true,zipcode:null;JavaScript对象的键都是字符串类型,值可以是任意数据类型。要获取一个对象的属性,我们用对象变量.属性名的方式:person.name;/Bobperson.zipcode;/null,数据类型,变量变量名是大小写英文、数字、$和_的组合,且不能用数字开头,变量名也不能是JavaScript的关键字。变量名也可以用中文,但是不建议。var a;/申明了变量a,此时a的值为undefinedvar$b=1;/申明了变量$b,同时给$b赋值,此时$b的值为1var s_007=007;/s_007是一个字符串var t=null;/t的值是null在JavaScript中,使用等号=对变量进行赋值。同一个变量可以反复赋值,而且可以是不同类型的变量:var a=123;/a的值是整数123a=ABC;/a变为字符串这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错(Java)。,数据类型,Map用JavaScript写一个Map如下:var m=new Map(Michael,95,Bob,75,Tracy,85);m.get(Michael);/95m.set(Bob,59);初始化Map需要一个二维数组,或者直接初始化一个空Map。Map具有以下方法:var m=new Map();/空Map由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉:,数据类型,SetSet是一组key的集合。要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set:var s1=new Set();/空Setvar s2=new Set(1,2,3);/含1,2,3var s=new Set(2,3,3,3);/重复元素自动被过滤:s;/Set 2,3,3通过add(key)方法可以添加元素到Set中,可以重复添加,但不会有效果;通过delete(key)方法可以删除元素:,数据类型,Iterable遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。具有iterable类型的集合可以通过新的for.of循环来遍历。用法如下:var a=A,B,C;var s=new Set(A,B,C);var m=new Map(1,x,2,y,3,z);for(var x of a)/遍历Array alert(x);for(var x of s)/遍历Set alert(x);for(var x of m)/遍历Map alert(x0+=+x1);,运算符,比较运算符,运算符,算数运算符+,-,*,/,%,+,-赋值运算符=,+=,-=,*=,/=,%=逻辑运算符 a&b:逻辑与(Logical AND),若a,b都是ture,则结果为ture。a|b:逻辑或(Logical OR),若a,b任一是ture,则结果为ture。!a:逻辑非(Logical NOT),若a是ture,则结果为false。,条件判断,JavaScript使用if().else.来进行条件判断,可以嵌套。例如,根据年龄显示不同内容,可以用if语句实现如下:var age=20;if(age=18)/如果age=18为true,则执行if语句块 alert(adult);else/否则执行else语句块 alert(teenager);,for循环,for循环通过初始条件、结束条件和递增条件来循环执行语句块:var x=0;var i;for(i=1;i=10000;i+)x=x+i;x;/50005000一个变体是for.in循环,它可以把一个对象的所有属性依次循环出来:var o=name:Jack,age:20,city:Beijing;for(var key in o)alert(key);/name,age,city,while循环,while循环while循环只有一个判断条件,条件满足,就不断循环,条件不满足时则退出循环。var n=99;while(n 0)n=n-2;do.while循环do.while()循环,它和while循环的唯一区别在于,不是在每次循环开始的时候判断条件,而是在每次循环完成的时候判断条件:var n=0;do n=n+1;while(n 100);用do.while()循环至少执行1次,而for和while循环则可能一次都不执行。,switch 语句,while循环请使用 switch 语句来选择要执行的多个代码块之一。switch(n)case 1:执行代码块 1 break;case 2:执行代码块 2 break;default:n 与 case 1 和 case 2 不同时执行的代码,函数,函数定义第一种方式:function 函数名(参数1,参数2,)return,请注意,函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。如果没有return语句,函数执行完毕后也会返回结果,只是结果为undefined。,function abs(x)if(x=0)return x;else return-x;,由于JavaScript的函数也是一个对象,上述定义的abs()函数实际上是一个函数对象,而函数名abs可以视为指向该函数的变量。,函数,函数定义第二种方式:var 变量=function(参数列

    注意事项

    本文(描述性程序设计语言DeclarativeLanguages.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开