共找到 1249 项 “匿名” 相关结果
- 全部分类
- 全部
- 文学
- 历史
- 哲学/宗教
- 法律
- 政治/社会
- 医学
- 教育/心理学
- 艺术/传媒
- 研究生考试
- 资格认证考试
- 公开课
- 语言
- 经济金融
- 管理学
- IT/计算机
- 自然科学
- 工学/工程
- 体育
- 行业资料
- 音乐
- 汽车机械制造
- 文档模板
- 创业
- 农学
- 生活
- 数据库教程
- 民族
简介: 所属分类:计算机网络 > 程序设计> java javascript j2ee > 本书是 javascript超级畅销书的最新版。ecmascript5和html5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为 javascript增添了很多适应未来发展的新特性。《 javascript高级 程序设计》这一版除增加5章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从 javascript语言实现的各个组成部分——语言核心、dom、bom、事件模型讲起,深入浅出地探讨了面向对象编程、ajax与comet服务器端通信,html5表单、媒体、canvas(包括 webgl)及 webworkers、地理定位、跨文档传递消息、客户端存储(包括indexeddb)等新api,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践。《 javascript高级 程序设计(第3版)》附录展望了未来的api和ecmascriptharmony规范。 本书适合有一定编程经验的 web应用开发人员阅读,也可作为高校及社会实用技术培训相关专业课程的教材。 第1章 javascript简介 1.1 javascript简史 1.2 javascript实现 1.2.1 ecmascript 1.2.2 文档对象模型(dom) 1.2.3 浏览器对象模型(bom) 1.3 javascript版本 1.4 小结 第2章 在html中使用 javascript 2.1 元素 2.1.1 标签的位置 2.1.2 延迟脚本 2.1.3 异步脚本 2.1.4 在xhtml申的用法 2.1.5 不推荐使用的语法 2.2 嵌入代码与外部文件 2.3 文档模式 2.4 元素 2.5 小结 第3章 基本概念 3.1 语法 3.1.1 区分大小写 3.1.2 标识符 3.1.3 注释 3.1.4 严格模式 3.1.5 语句 3.2关键字和保留字 3.3 变量 3.4 数据类型 3.4.1 typeof操作符 3.4.2 undefined类型 3.4.3 null类型 3.4.4 boolean类型 3.4.5 number类型 3.4.6 string类型 3.4.7 0bj ect类型 3.5 操作符 3.5.1 一元操作符 3.5.2 位操作符 3.5.3 布尔操作符 3.5.4 乘性操作符 3.5.5 加性操作符 3.5.6 关系操作符 3.5.7 相等操作符 3.5.8 条件操作符 3.5.9赋值操作符 3.5.10 逗号操作符 3.6 语句 3.6.1 if语句 3.6.2 do—while语句 3.6.3 while语句 3.6.4 for语句 3.6.5 for—in语句 3.6.6 label语句 3.6.7 break和continue语句 3.6.8 with语句 3.6.9 switch语句 3.7 函数 3.7.1 理解参数 3.7.2 没有重载 3.8 小结 第4章 变量、作用域和内存问题 第5章 引用类型 第6章 面向对象的 程序设计 第7章 函数表达式 第8章 bom 第9章 客户端检测 第10章 dom 第11章 dom扩展 第12章 dom2和dom3 第13章 事件 第14章 表单脚本 第15章 使用canvas绘图 第16章 html5脚本编程 第17章 错误处理与调试 第18章 javascriptgn xml 第19章 e4x 第20章 json 第21章 ajax与comet 第22章 高级技巧 第23章 离线应用与客户端存储 第24章 最佳实践 第25章 新兴的api 附录a ecmascript harmony 附录b 严格模式 附录c javascript库 附录d javascript工具 javascript简介 本章内容 javascript历史回顾 javascript是什么 javascript与ecmascript的关系 javascript的不同版本 avascript诞生于1995年。当时,它的主要目的是处理以前由服务器端语言(如perl)负责的一些输入验证操作。在 javascript问世之前,必须把表单数据发送到服务器端才能确定用户是否没有填写某个必填域,是否输入了无效的值。 netscape navigator希望通过 javascript来解决这个问题。在人们普遍使用电话拔号上网的年代,能够在客户端完成一些基本的验证任务绝对是令人兴奋的。毕竟,拨号上网的速度之慢,导致了与服务器的每一次数据交换事实上都成了对人们耐心的一次考验。 自此以后, javascript逐渐成为市面上常见浏览器必备的一项特色功能。如今, javascript的用途早已不再局限于简单的数据验证,而是具备了与浏览器窗口及其内容等几乎所有方面交互的能力。今天的 javascript已经成为一门功能全面的编程语言,能够处理复杂的计算和交互,拥有了闭包、匿名(lamda,拉姆达)函数,甚至元编程等特性。作为 web的一个重要组成部分, javascript的重要性是不言而喻的,就连手机浏览器,甚至那些专为残障人士设计的浏览器等非常规浏览器都支持它。当然,微软的例子更为典型。虽然有自己的客户端脚本语言vbscript,但微软仍然在inter net explorer的早期版本中加入了自己的 javascript实现 。 javascript从一个简单的输入验证器发展成为一门强大的编程语言,完全出乎人们的意料。应该说,它既是一门非常简单的语言,又是一门非常复杂的语言。说它简单,是因为学会使用它只需片刻功夫;而说它复杂,是因为要真正掌握它则需要数年时间。要想全面理解和掌握 javascript,关键在于弄清楚它的本质、历史和局限性。 1.1 javascript简史 在 web日益流行的同时,人们对客户端脚本语言的需求也越来越强烈。那个时候,绝大多数因特网用户都使用速度仅为28.8kbit/s的“猫”(调制解调器)上网,但网页的大小和复杂性却不断增加。为完成简单的表单验证而频繁地与服务器交换数据只会加重用户的负担。想象一下:用户填写完一个表单,单击“提交”按钮,然后等待30秒钟,最终服务器返回消息说有一个必填字段没有填好……当时走在技术革新最前沿的 netscape公司,决定着手开发一种客户端语言,用来处理这种简单的验证。 当时就职于 netscape公司的布兰登?艾奇(brendan eich),开始着手为计划于1995年2月发布的 netscape navigator 2开发一种名为livescript的脚本语言——该语言将同时在浏览器和服务器中使用(它在服务器上的名字叫livewire)。为了赶在发布日期前完成livescript的开发, netscape与sun公司建立了一个开发联盟。在 netscape navigator 2正式发布前夕, netscape为了搭上媒体热炒 java的顺风车,临时把livescript改名为 javascript。 由于 javascript 1.0获得了巨大成功, netscape随即在 netscape navigator 3中又发布了 javascript 1.1。 web虽然羽翼未丰,但用户关注度却屡创新高。在这样的背景下, netscape把自己定位为市场领袖型公司。与此同时,微软决定向与navigator竞争的自家产品inter net explorer浏览器投入更多资源。 netscape navigator 3发布后不久,微软就在其inter netexplorer 3中加入了名为jscript的 javascript实现(命名为jscript是为了避开与 netscape有关的授权问题)。以现在的眼光来看,微软1996年8月为进入 web浏览器领域而实施的这个重大举措,是导致 netscape日后蒙羞的一个标志性事件。然而,这个重大举措同时也标志着 javascript作为一门语言,其开发向前迈进了一大步。 微软推出其 javascript实现意味着有了3个不同的 javascript版本: netscape navigator中的 javascript、inter net explorer中的jscript和scriptease中的cenvi。与c及其他编程语言不同,当时还没有标准规定 javascript的语法和特性,3个不同版本并存的局面已经完全暴露了这个问题。随着业界担心的日益加剧, javascript的标准化问题被提上了议事日程。 1997年,以 javascript 1.1为蓝本的建议被提交给了欧洲计算机制造商协会(ecma,european computer manufacturers association)。该协会指定39号技术委员会(tc39,technical committee #39)负责“标准化一种通用、跨平台、供应商中立的脚本语言的语法和语义”(http://www.ecma international.org/memento/tc39.htm)。tc39由来自 netscape、sun、微软、borland及其他关注脚本语言发展的公司的程序员组成,他们经过数月的努力完成了ecma-262——定义一种名为ecmascript(发音为“ek-ma-script”)的新脚本语言的标准。 第二年,iso/iec(international organization for standardization and international electrotechnical commission,国标标准化组织和国际电工委员会)也采用了ecmascript作为标准(即iso/iec-16262)。自此以后,浏览器开发商就开始致力于将ecmascript作为各自 javascript实现的基础,也在不同程度上取得了成功。 1.2 javascript实现 虽然 javascript和ecmascript通常都被人们用来表达相同的含义,但 javascript的含义却比ecma-262中规定的要多得多。没错,一个完整的 javascript实现应该由下列三个不同的部分组成(见图1-1)。 核心(ecmascript) 文档对象模型(dom) 浏览器对象模型(bom) 1.2.1 ecmascript 由ecma-262定义的ecmascript与 web浏览器没有依赖关系。实际上,这门语言本身并不包含输入和输出定义。ecma-262定义的只是这门语言的基础,而在此基础之上可以构建更完善的脚本语言。我们常见的 web浏览器只是ecmascript实现可能的宿主环境之一。宿主环境不仅提供基本的ecmascript实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。而这些扩展——如dom,则利用ecmascript的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。前面介绍过的node以及众所周知的adobe flash也都是宿主环境。 既然ecma-262标准没有参照 web浏览器,那它都规定了些什么内容呢?大致说来,它规定了这门语言的下列组成部分: 语法 类型 语句 关键字 保留字 操作符 对象 ecmascript就是对实现该标准规定的各个方面内容的语言的描述。 javascript实现了ecmascript,adobe actionscript同样也实现了ecmascript。 1. ecmascript的版本 ecmascript的不同版本又称为版次,以第x版表示(意即描述特定实现的ecma-262规范的第x个版本)。ecma-262的最近一版是第5版,发布于2009年。而ecma-262的第1版本质上与 netscape的 javascript 1.1相同——只不过删除了所有针对浏览器的代码并作了一些较小的改动:ecma-262要求支持unicode标准(从而支持多语言开发),而且对象也变成了平台无关的( netscape javascript 1.1的对象在不同平台中的实现不一样,例如date对象)。这也是 javascript 1.1和1.2与ecma-262第1版不一致的主要原因。 ecma-262第2版主要是编辑加工的结果。这一版中内容的更新是为了与iso/iec-16262保持严格一致,没有作任何新增、修改或删节处理。因此,一般不使用第2版来衡量ecmascript实现的兼容性。 ecma-262第3版才是对该标准第一次真正的修改。修改的内容涉及字符串处理、错误定义和数值输出。这一版还新增了对正则表达式、新控制语句、try-catch异常处理的支持,并围绕标准的国际化做出了一些小的修改。从各方面综合来看,第3版标志着ecmascript成为了一门真正的编程语言。 ecma-262第4版对这门语言进行了一次全面的检核修订。由于 javascript在 web上日益流行,开发人员纷纷建议修订ecmascript,以使其能够满足不断增长的 web开发需求。作为回应,ecma tc39重新召集相关人员共同谋划这门语言的未来。结果,出台后的标准几乎在第3版基础上完全定义了一门新语言。第4版不仅包含了强类型变量、新语句和新数据结构、真正的类和经典继承,还定义了与数据交互的新方式。 与此同时,tc39下属的一个小组也提出了一个名为ecmascript 3.1的替代性建议,该建议只对这门语言进行了较少的改进。这个小组认为第4版给这门语言带来的跨越太大了。因此,该小组建议对这门语言进行小幅修订,能够在现有 javascript引擎基础上实现。最终,es3.1附属委员会获得的支持超过了tc39,ecmas-262第4版在正式发布前被放弃。 ecmascript 3.1成为ecma-262第5版,并于2009年12月3日正式发布。第5版力求澄清第3版中已知的歧义并增添了新的功能。新功能包括原生json对象(用于解析和序列化json数据)、继承的方法和高级属性定义,另外还包含一种严格模式,对ecmascript引擎解释和执行代码进行了补充说明。 2. 什么是ecmascript兼容 ecma-262给出了ecmascript兼容的定义。要想成为ecmascript的实现,则该实现必须做到: 支持ecma-262描述的所有“类型、值、对象、属性、函数以及程序句法和语义”(ecma-262第1页); 支持unicode字符标准。 此外,兼容的实现还可以进行下列扩展。 添加ecma-262没有描述的“更多类型、值、对象、属性和函数”。ecma-262所说的这些新增特性,主要是指该标准中没有规定的新对象和对象的新属性。 支持ecma-262没有定义的“程序和正则表达式语法”。(也就是说,可以修改和扩展内置的正则表达式语法。) 上述要求为兼容实现的开发人员基于ecmascript开发一门新语言提供了广阔的空间和极大的灵活性,这也从另一个侧面说明了ecmascript受开发人员欢迎的原因。 3. web浏览器对ecmascript的支持 1996年, netscape navigator 3捆绑发布了 javascript 1.1。而相同的 javascript 1.1设计规范随后作为对新标准(ecma-262)的建议被提交给ecma。伴随着 javascript的迅速走红, netscape豪情满怀地着手开发 javascript 1.2。然而,问题是ecma当时还没有接受 netscape的建议。 netscape navigator 3发布后不久,微软也推出了inter netexplorer 3。微软在ie的这一版中捆绑了jscript 1.0,很多人都认为jscript 1.0与 javascript 1.1应该是一样的。但是,由于没有文档依据,加之不适当的特性模仿,jscript 1.0还是很难与 javascript 1.1相提并论。 1997年,内置 javascript 1.2的 netscape navigator 4发布;而到这一年年底,ecma-262第1版也被接受并实现了标准化。结果,虽然ecmascript被认为是基于 javascript 1.1制定的,但 javascript 1.2与ecmascript的第1版并不兼容。 jscript的升级版是inter netexplorer 4中内置的jscript 3.0(随同微软iis 3.0发布的jscript 2.0从来也没有移植到浏览器中)。微软通过媒体大肆宣传jscript 3.0是世界上第一个ecma兼容的脚本语言,但当时的ecma-262尚未定稿。于是,jscript 3.0与 javascript 1.2都遭遇了相同的尴尬局面——谁都没有按照最终的ecmascript标准来实现。 netscape决定更新其 javascript实现,即在 netscape navigator 4.06中发布 javascript 1.3,从而做到了与ecma-262的第一个版本完全兼容。在 javascript 1.3中, netscape增加了对unicode标准的支持,并在保留 javascript 1.2新增特性的同时实现了所有对象的平台中立化。 在 netscape以mozilla项目的名义开放其源代码时,预期 javascript 1.4将随同 netscape navigator 5一道发布。然而,一个激进的决定,彻底重新设计 netscape代码,打乱了原有计划。后来, javascript 1.4只发布了针对 netscape ent erprise server的服务器版,而没有内置于 web浏览器中。 到了2008年,五大主流 web浏览器(ie、firefox、safari、chrome和opera)全部做到了与ecma-262兼容。ie8是第一个着手实现ecma-262第5版的浏览器,并在ie9中提供了完整的支持。firefox 4也紧随其后做到兼容。下表列出了ecmascript受主流 web浏览器支持的情况。 浏 览 器 ecmascript兼容性 浏 览 器 ecmascript兼容性 netscape navigator 2 — opera 6~7.1 第2版 netscape navigator 3 — opera 7.2+ 第3版 netscape navigator 4~4.05 — safari 1~2.0.x 第3版* netscape navigator 4.06~4.79 第1版 safari 3.x 第3版 netscape 6+(mozilla 0.6.0+) 第3版 safari 4.x~5.x 第5版* ie3 — chrome 1+ 第3版 ie4 — firefox 1~2 第3版 ie5 第1版 firefox 3.0.x 第3版 ie5.5~ie7 第3版 firefox 3.5~3.6 第5版* ie8 第5版* firefox 4.0 + 第5版 ie9+ 第5版 * 不完全兼容的实现 1.2.2 文档对象模型(dom) 文档对象模型(dom,document object model)是针对xml但经过扩展用于html的应用程序编程接口(api,application programming interface)。dom把整个页面映射为一个多层节点结构。html或xml页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。看下面这个html页面: hello world! 在dom中,这个页面可以通过见图1-2所示的分层节点图表示。 通过dom创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助dom提供的api,开发人员可以轻松自如地删除、添加、替换或修改任何节点。 1. 为什么要使用dom 在inter netexplorer 4和 netscape navigator 4分别支持的不同形式的dhtml(dynamic html)基础上,开发人员首次无需重新加载网页,就可以修改其外观和内容了。然而,dhtml在给 web技术发展带来巨大进步的同时,也带来了巨大的问题。由于 netscape和微软在开发dhtml方面各持己见,过去那个只编写一个html页面就能够在任何浏览器中运行的时代结束了。 对开发人员而言,如果想继续保持 web跨平台的天性,就必须额外多做一些工作。而人们真正担心的是,如果不对 netscapet和微软加以控制, web开发领域就会出现技术上两强割据,浏览器互不兼容的局面。此时,负责制定 web通信标准的w3c(world wide webconsortium,万维网联盟)开始着手规划dom。 图 1-2 2. dom级别 dom1级(dom level 1)于1998年10月成为w3c的推荐标准。dom1级由两个模块组成:dom核心(dom core)和dom html。其中,dom核心规定的是如何映射基于xml的文档结构,以便简化对文档中任意部分的访问和操作。dom html模块则在dom核心的基础上加以扩展,添加了针对html的对象和方法。 请读者注意,dom并不只是针对 javascript的,很多别的语言也都实现了dom。不过,在 web浏览器中,基于ecmascript实现的dom的确已经成为 javascript这门语言的一个重要组成部分。 如果说dom1级的目标主要是映射文档的结构,那么dom2级的目标就要宽泛多了。dom2级在原来dom的基础上又扩充了(dhtml一直都支持的)鼠标和用户界面事件、范围、遍历(迭代dom文档的方法)等细分模块,而且通过对象接口增加了对css(cascading style sheets,层叠样式表)的支持。dom1级中的dom核心模块也经过扩展开始支持xml命名空间。 dom2级引入了下列新模块,也给出了众多新类型和新接口的定义。 dom视图(dom views):定义了跟踪不同文档(例如,应用css之前和之后的文档)视图的接口; dom事件(dom events):定义了事件和事件处理的接口; dom样式(dom style):定义了基于css为元素应用样式的接口; dom遍历和范围(dom traversal and range):定义了遍历和操作文档树的接口。 dom3级则进一步扩展了dom,引入了以统一方式加载和保存文档的方法——在dom加载和保存(dom load and save)模块中定义;新增了验证文档的方法——在dom验证(dom validation)模块中定义。dom3级也对dom核心进行了扩展,开始支持xml 1.0规范,涉及xml infoset、xpath和xml base。 在阅读dom标准的时候,读者可能会看到dom0级(dom level 0)的字眼。实际上,dom0级标准是不存在的;所谓dom0级只是dom历史坐标中的一个参照点而已。具体说来,dom0级指的是inter net explorer 4.0和 netscape navigator 4.0最初支持的dhtml。 3. 其他dom标准 除了dom核心和dom html接口之外,另外几种语言还发布了只针对自己的dom标准。下面列出的语言都是基于xml的,每种语言的dom标准都添加了与特定语言相关的新方法和新接口 svg(scalable vector graphic,可伸缩矢量图)1.0; mathml(mathematical markup language,数学标记语言)1.0; smil(synchronized multimedia integration language,同步 多媒体集成语言)。 还有一些语言也开发了自己的dom实现,例如mozilla的xul(xml user interface language,xml用户界面语言)。但是,只有上面列出的几种语言是w3c的推荐标准。 4. web浏览器对dom的支持 在dom标准出现了一段时间之后, web浏览器才开始实现它。微软在ie5中首次尝试实现dom,但直到ie5.5才算是真正支持dom1级。在随后的ie6和ie7中,微软都没有引入新的dom功能,而到了ie8才对以前dom实现中的bug进行了修复。 netscape直到 netscape 6(mozilla 0.6.0)才开始支持dom。在 netscape 7之后,mozilla把开发重心转向了firefox浏览器。firefox 3完全支持dom1级,几乎完全支持dom2级,甚至还支持dom3级的一部分。(mozilla开发团队的目标是构建与标准100%兼容的浏览器,而他们的努力也得到了回报。) 目前,支持dom已经成为浏览器开发商的首要目标,主流浏览器每次发布新版本都会改进对dom的支持。下表列出了主流浏览器对dom标准的支持情况。 浏 览 器 dom兼容性 netscape navigator 1. ~ 4.x — netscape 6+ (mozilla 0.6.0+) 1级、2级(几乎全部)、3级(部分) ie2~ie4.x — ie5 1级(最小限度) ie5.5~ie8 1级(几乎全部) ie9+ 1级、2级、3级 opera 1~6 — opera 7~8.x 1级(几乎全部)、2级(部分) opera 9~9.9 1级、2级(几乎全部)、3级(部分) opera 10+ 1级、2级、3级(部分) safari 1.0.x 1级 safari 2+ 1级、2级(部分) chrome 1+ 1级、2级(部分) firefox 1+ 1级、2级(几乎全部)、3级(部分) 1.2.3 浏览器对象模型(bom) inter netexplorer 3和 netscape navigator 3有一个共同的特色,那就是支持可以访问和操作浏览器窗口的浏览器对象模型(bom,browser object model)。开发人员使用bom可以控制浏览器显示的页面以外的部分。而bom真正与众不同的地方(也是经常会导致问题的地方),还是它作为 javascript实现的一部分但却没有相关的标准。这个问题在html5中得到了解决,html5致力于把很多bom功能写入正式规范。html5发布后,很多关于bom的困惑烟消云散。 从根本上讲,bom只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的 javascript扩展算作bom的一部分。下面就是一些这样的扩展: 弹出新浏览器窗口的功能; 移动、缩放和关闭浏览器窗口的功能; 提供浏览器详细信息的navigator对象; 提供浏览器所加载页面的详细信息的location对象; 提供用户显示器分辨率详细信息的screen对象; 对cookies的支持; 像xmlhttprequest和ie的activexobject这样的自定义对象。 由于没有bom标准可以遵循,因此每个浏览器都有自己的实现。虽然也存在一些事实标准,例如要有window对象和navigator对象等,但每个浏览器都会为这两个对象乃至其他对象定义自己的属性和方法。现在有了html5,bom实现的细节有望朝着兼容性越来越高的方向发展。第8章将深入讨论bom。 1.3 javascript版本 作为 netscape“继承人”的mozilla公司,是目前唯一还在沿用最初的 javascript版本编号序列的浏览器开发商。在 netscape将源代码提交给开源的mozilla项目的时候, javascript在浏览器中的最后一个版本号是1.3。(如前所述,1.4版是只针对服务器的实现。)后来,随着mozilla基金会继续开发 javascript,添加新的特性、关键字和语法, javascript的版本号继续递增。下表列出了 netscape/mozilla浏览器中 javascript版本号的递增过程: 浏 览 器 javascript版本 浏 览 器 javascript版本 netscape navigator 2 1.0 firefox 1.5 1.6 netscape navigator 3 1.1 firefox 2 1.7 netscape navigator 4 1.2 firefox 3 1.8 netscape navigator 4.06 1.3 firefox 3.5 1.8.1 netscape 6+(mozilla 0.6.0+) 1.5 firefox 3.6 1.8.2 firefox 1 1.5 实际上,上表中的编号方案源自firefox 4将内置 javascript 2.0这一共识。因此,2.0版之前每个递增的版本号,表示的是相应实现与 javascript 2.0开发目标还有多大的距离。虽然原计划是这样,但 javascript的这种发展速度让这个计划成为不再可行。目前, javascript 2.0还没有目标实现。 请注意,只有 netscape/mozilla浏览器才遵循这种编号模式。例如,ie的jscript就采用了另一种版本命名方案。换句话说,jscript的版本号与上表中 javascript的版本号之间不存在任何对应关系。而且,大多数浏览器在提及对 javascript的支持情况时,一般都以ecmascript兼容性和对dom的支持情况为准。 1.4 小结 javascript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: ecmascript,由ecma-262定义,提供核心语言功能; 文档对象模型(dom),提供访问和操作网页内容的方法和接口; 浏览器对象模型(bom),提供与浏览器交互的方法和接口。 javascript的这三个组成部分,在当前五个主要浏览器(ie、firefox、chrome、safari和opera)中都得到了不同程度的支持。其中,所有浏览器对ecmascript第3版的支持大体上都还不错,而对ecmascript 5的支持程度越来越高,但对dom的支持则彼此相差比较多。对html5已经正式纳入标准的bom来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而异。 …… nicholas c. zakas(尼古拉斯?泽卡斯)世界顶级 web技术专家,现为雅虎公司界面呈现架构师,负责my yahoo!和雅虎首页等大访问量站点的设计。尼古拉斯拥有丰富的 web开发和界面设计经验,曾经参与许多世界级大公司的 web解决方案开发。他还是high performance javascript一书的作者,并与他人合作撰写了 professional ajax和even faster web sites。尼古拉斯拥有梅里马克学院计算机科学学士学位和埃迪柯特学院的mba学位。他的twitter别名是@slick net。
Java核心编程技术:Java基础+核心库+图形+网络+高级特性
光盘作者: 刘中兵Java研究室编著
出版社:电子工业出版社,2009
简介: 本书详细讲解Java语言基础开发中的各种技术,主要内容包括如下。 Java开发入门:JDK、JVM、Eclipse、Linux。 Java语法基础:类、抽象类、接口、内部类、匿名类、异常、编码规范。 Java核心编程:流、多线程、实体类、集合类、正则表达式、XML、属性文件。 Java图形编程:AWT(Java2D、JavaSound、Media)、Swing、SWT、Jface。 Java网络编程:Applet、Socket/TCP/UDP、NIO、RMI、CORBA。 Java高级特性:反射、泛型、注释符、自动装箱和拆箱、枚举类、可变参数、可变返回类型、增强循环、静态导入。 随书附赠光盘内容为本书各种原型包、系统源程序。 本书内容循序渐进,通俗易懂,覆盖了Java开发的最流行技术。无论对于Java软件设计还是软件开发,本书都是精通开发Java应用的必备的实用手册。 本书适合作为Java相关培训机构的教材,也可作为Java自学人员的参考手册。
作者: 刘振华,尹萍编著
出版社:科学出版社,2002
简介: 信息隐藏是一门新兴的学科,是与密码术、多媒体、计算机网络紧密相关的交叉学科,它通过将秘密消息隐藏在其他消息之中达到隐匿消息存在的目的,其在版权保护、保密通信等领域都具有广泛的应用价值。本书系统地阐述了信息隐藏的基本概念、主要技术、攻击方法和信息隐藏的应用,同时介绍了近年来国内外研究人员在这一领域的主要成果。 全书共分七章。第一章简要介绍了信息隐藏技术的发展、术语、主要原理及存在的局限性,其余各章分别对信息隐藏技术在隐写术、数字水印、数字指纹、计算机系统中的隐通道、密码术中的阈下通道、低截获概率通信、广播加密、匿名服务等方面应用的主要技术和攻击方法做了详尽的说明。 本书可作为信息安全、密码学等相关专业的大学高年级学生或研究生的教学用书,也可供以上领域的研究工作者参考。
作者: 杨佩璐等编著
出版社:清华大学出版社,2013
简介:杨佩璐编著的《零点起飞学C#》结合大量实例和实战案例,由浅入深、循序渐进地介绍C#程序设计的相关知识,尤其对面向对象的程序设计和一些难点做了重点介绍。本书特意提供了典型习题及教学PPT,以方便教学。另外,本书提供了大量的配套教学视频,还赠送了13个典型模块与3个项目开发的源代码及教学视频,以帮助读者更好地学习。这些视频和本书代码一起收录于配书光盘中。 本书共分4篇。第1篇为基础语法,介绍了Visual Studio 2010开发环境的搭建、C#基本概念、类型、变量、表达式和运算符、语句、命名空间、类、结构和数组等。第2篇为面向对象技术深入,介绍了接口、委托和事件、异常处理、泛型、分部类型和可空类型、赋值、迭代器、匿名方法、扩展方法、Lambda表达式和查询表达式等。第3篇为C#应用技术,介绍了字符串处理、日期和时间处理、I/O流、目录和文件处理、Windows窗体编程、使用GDI+绘图,以及.NET数据访问等。第4篇为项目案例实战,介绍了图书管理系统、P2P聊天工具、我的校内网等系统的开发过程,因为篇幅所限,本篇内容以PDF格式收录于配书光盘中。 《零点起飞学C#》适合C#入门与想提高编程技术能力的人员阅读,也可作为大中专院校及职业院校C#程序设计课程的教材。另外,本书也可供C#语言爱好者和从业者作为实际工作中的参考书籍。
作者: 李刚
出版社:电子工业出版社 2018年01月
简介:
《疯狂Java讲义(第4版)》是《疯狂Java讲义》的第4版,第4版保持了前3版系统、全面、讲解浅显、细致的特性,全面新增介绍了Java 9的新特性。
《疯狂Java讲义(第4版)》深入介绍了Java编程的相关方面,《疯狂Java讲义(第4版)》内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。覆盖了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下绝大部分类和接口。本书重点介绍了Java 9的模块化系统,还详细介绍了Java 9的jshell工具、多版本JAR包、匿名内部类的菱形语法、增强的try语句、私有接口方法,以及Java 9新增的各种API功能。
与前3版类似,《疯狂Java讲义(第4版)》并不单纯从知识角度来讲解Java,而是从解决问题的角度来介绍Java语言,所以《疯狂Java讲义(第4版)》中涉及大量实用案例开发:五子棋游戏、梭哈游戏、仿QQ的游戏大厅、MySQL企业管理器、仿EditPlus的文本编辑器、多线程、断点下载工具、Spring框架的IoC容器……这些案例既能让读者巩固每章的知识,又可以让读者学以致用,激发编程自豪感,进而引爆内心的编程激情。《疯狂Java讲义(第4版)》光盘里包含书中所有示例的代码和《疯狂Java实战演义》的所有项目代码,这些项目可以作为本书课后练习的“非标准答案”,如果读者需要获取关于课后习题的解决方法、编程思路,可以登录http://www.crazyit.org站点与笔者及本书庞大的读者群相互交流。
作者: 罗升阳 著
出版社:电子工业出版社 2015年11月
简介:在内容上,本书结合使用情景,全面、深入、细致地分析了Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application)。在组织上,本书将上述内容划分为初识Android系统、Android专用驱动系统和Android应用程序框架三大篇。初识Android系统篇介绍了参考书籍、基础知识以及实验环境搭建;Android专用驱动系统篇介绍了Logger日志驱动程序、Binder进程间通信驱动程序以及Ashmem匿名共享内存驱动程序;Android应用程序框架篇从组件、进程、消息以及安装四个维度对Android应用程序的框架进行了深入的剖析。通过上述内容及其组织,本书能使读者既能从整体上把握Android系统的层次结构,又能从细节上掌握每一个层次的要点。
作者: 樊爱宛
出版社:清华大学出版社 2017年09月
简介:
PHP已经走过了20多年,目前*版本是PHP 7,性能方面得到了大幅度的提升。本书就是立足于*版的PHP和MySQL,从*基础的语法基础开发,让没有编程基础的人也学会PHP MySQL网站开发。本书分为4篇共19章,*篇(1~6章)先介绍PHP 7的语法和一些新特色;第二篇(7~10章)是PHP的一些高级应用,如国际化、zip文件处理、图形图像操作、正则表达式;第三篇(11~15章)是MySQL数据库的基础入门,包括数据库、数据表和数据的常见操作;*后一篇(16~17章)是PHP MySQL的混合操作,还包含两个大型项目的开发步骤。本书适合所有想学习网页开发、Web项目开发的入门读者,也适合所有想学习PHP的读者,还适合做一些培训机构的PHP和MySQL培训教材。
【目录】
第1章 认识PHP 7 1
1.1PHP的发展历程 1
1.2PHP语言的优缺点 2
1.3 谁在用PHP 3
1.4PHP 7的新特性 3
1.4.1性能提高 3
1.4.2标量类型声明 4
1.4.3返回值类型声明 4
1.4.4NULL 合并运算符 4
1.4.5太空船操作符(组合比较符) 4
1.4.6匿名类 5
1.4.7use加强 5
1.5 搭建PHP开发环境 5
1.5.1下载XAMPP 6
1.5.2Windows版本 7
1.5.3Linux版本 9
1.5.4MAC OS X版本 10
1.5.5其他安装方式 10
1.6 配置和启动XAMPP 10
1.6.1Windows版本 10
1.6.2Linux与MAC OS X版本 11
1.6.3查看PHP配置信息 13
1.7 *个PHP程序:HelloWorld 14
1.8PHP的开发工具 15
1.8.1Sublime Text简介 15
1.8.2Atom简介 25
1.8.3其他流行的集成开发环境与开发工具 30
第2章 PHP基础语法 31
2.1PHP标识符 31
2.2 变量 32
2.2.1变量名称 32
2.2.2给变量赋值 32
2.2.3引用赋值 33
2.2.4变量的数据类型 33
2.2.5可变变量 34
2.3 常量 34
2.3.1声明常量 34
2.3.2常量与变量不同 35
2.3.3检查某常量是否存在 35
2.3.4内置常量 35
2.4 数据类型 36
2.4.1数据类型简介 36
2.4.2布尔型(boolean) 36
2.4.3整型(integer) 37
2.4.4浮点型(float) 38
2.4.5字符串(string) 38
2.4.6数组(array) 40
2.4.7对象(object) 40
2.4.8资源(resource) 41
2.4.9无类型(NULL) 41
2.4.10数据类型相互转换 41
2.5 表达式 42
2.6 运算符 42
2.6.1算术运算符 42
2.6.2字符串运算符 43
2.6.3赋值运算符 43
2.6.4比较运算符 43
2.6.5逻辑运算符 44
2.6.6按位运算符 45
2.6.7错误控制运算符 45
2.6.8三元运算符 45
2.6.9NULL 合并运算符 46
2.6.10太空船操作符(组合比较符) 46
2.6.11运算符的优先级和结合规则 46
2.7 流程控制 46
2.7.1条件控制语句if、else、elseif 47
2.7.2条件控制语句switch、case、break、default 48
2.7.3while循环语句 48
2.7.4do...while循环语句 49
2.7.5for循环语句 49
2.7.6foreach循环语句 50
2.7.7使用break/contine语句跳出循环 51
2.8 函数(function) 51
2.8.1函数的定义 51
2.8.2向函数传递参数 52
2.8.3通过引用传递参数 53
2.8.4默认参数的值 53
2.8.5参数类型声明 54
2.8.6可变数量的参数列表 54
2.8.7使用全局变量 55
2.8.8使用静态变量 55
2.8.9从函数返回值 56
2.8.10返回值类型声明 56
2.8.11可变函数 57
2.8.12匿名函数 57
第3章 PHP与用户交互 58
3.1 表单处理 58
3.1.1表单简介 58
3.1.2GET和POST的区别 59
3.1.3PHP与表单处理 60
3.2 表单元素及处理 60
3.2.1文本框 60
3.2.2单选按钮(radio)与复选框(checkbox) 61
3.2.3下拉列表 63
3.2.4按钮 65
3.3Cookie 66
3.3.1什么是Cookie 67
3.3.2如何创建Cookie 67
3.3.3如何读取Cookie 68
3.3.4如何确认Cookie存在 68
3.3.5如何删除Cookie 68
3.4Session 69
3.4.1什么是Session 69
3.4.2如何创建Session 69
3.4.3如何存储Session 70
3.4.4如何检测Session是否存在 70
3.4.5终结Session 71
第4章 字符串和数组 72
4.1 字符串 72
4.1.1字符串里字符的类型 72
4.1.2连接字符串 72
4.1.3计算字符串长度strlen() 73
4.1.4检索字符串 73
4.1.5截取字符串 75
4.1.6替换字符串 75
4.1.7清理字符串 76
4.1.8切分和组合字符串 77
4.1.9其他常用字符串函数 78
4.2 数组的类型 79
4.2.1数字索引数组 79
4.2.2关联索引数组 79
4.2.3多维数组 80
4.3 统计数组元素个数count()函数 81
4.4 用foreach遍历数组 82
4.5 设置数组指针—reset()、end()、 next()、prev()、current()、each() 82
4.6 数组排序 83
4.6.1默认排序sort()、 rsort() 83
4.6.2关联索引数组按照键值排序asort()、arsort() 85
4.6.3关联索引数组按照键名排序ksort()、krsort() 85
4.7 数组常见操作 86
4.7.1向数组添加新元素array_push()、array_unshift() 86
4.7.2删除数组元素array_pop()、array_shift() 86
4.7.3删除数组中的重复值array_unique() 87
4.7.4对数组进行查询in_array() 88
4.7.5其他常用数组函数array_keys()、array_values()、unset() 88
第5章 日期与时间 90
5.1 设置时区 90
5.2 获取UNIX时间戳 91
5.3 根据时间戳获取日期和时间91
5.4 根据日期和时间获取时间戳92
5.5 根据时间戳获取包含日期信息的数组 92
5.6 验证日期的有效性 93
5.7 输出指定格式的日期和时间94
5.8 面向对象的日期时间类 95
5.8.1DateTime类 95
5.8.2DateTimeImmutable类 96
5.8.3DateTimeZone类 97
5.8.4DateInterval类 98
5.8.5DatePeriod类 99
第6章 文件与目录 100
6.1 文件操作 100
6.1.1打开文件 100
6.1.2检查是否已到达文件末尾 101
6.1.3读取文件 102
6.1.4关闭文件 102
6.1.5将整个文件读入一个字符串 103
6.1.6将字符串写入文件 103
6.1.7将整个文件读入一个数组 104
6.1.8复制文件 104
6.1.9删除文件 105
6.1.10检查文件是否正常 105
6.1.11返回关于文件的信息 105
6.2 目录操作 107
6.2.1打开目录 107
6.2.2关闭目录 107
6.2.3读取目录 107
6.2.4创建目录 108
6.2.5删除目录 109
6.2.6重命名文件或目录 109
6.2.7检查文件或目录是否存在 109
第7章 PHP与国际化 110
7.1 多字节字符函数 110
7.1.1检测字符串的编码 111
7.1.2检查字符串在指定的编码里是否有效 111
7.1.3转换字符编码格式 111
7.1.4解析$_GET字符串 112
7.1.5按字节数来截取字符串 112
7.2intl模块简介 113
7.2.1安装intl模块 113
7.2.2Collator类比较字符串 114
7.2.3NumberFormatter类帮助做财务 114
7.2.4IntlDateFormatter类显示中文版的日期时间 115
第8章 PHP与zip文件处理 116
8.1zip函数 116
8.1.1打开和关闭zip文件 116
8.1.2读取并打印文件/目录名称 117
8.1.3处理zip文件 118
8.2 处理zip文件的必杀技:ZipArchive类 120
8.2.1打开/关闭压缩文件 120
8.2.2解压缩文件 121
8.2.3添加目录与文件 121
8.2.4遍历zip文件 123
8.2.5获取文件 124
第9章 图形图像处理 125
9.1 启用GD2扩展库 125
9.2 创建图形图像 126
9.2.1用PHP生成一个简单图形 127
9.2.2详解PHP生成图形的步骤 127
9.3 操作图形图像 129
9.3.1更改图像颜色 129
9.3.2在图像上输出文字 129
9.4 操作已有的图片 130
9.4.1获取图片的宽和高 130
9.4.2生成图片的缩略图 131
9.4.3给图片添加水印效果——文字水印 132
9.4.4给图片添加水印效果——图片水印 133
第10章 正则表达式 135
10.1在PHP中使用正则表达式 135
10.1.1应用正则的函数 135
10.1.2通过一个例子理解正则 136
10.1.3定义正则表达式的头部和尾部 137
10.2正则表达式中的符号 137
10.2.1元字符 137
10.2.2转义字符 139
10.2.3修正符 139
10.2.4字符应用 140
10.3验证URL 141
10.4验证电话号码 142
第11章 MySQL的安装与配置 143
11.1什么是MySQL 143
11.1.1客户端/服务器软件 143
11.1.2MySQL版本 143
11.1.3MySQL的优势 144
11.2安装与配置MySQL 5.6 144
11.3启动服务并登录MySQL数据库 154
11.3.1启动MySQL服务 154
11.3.2登录MySQL数据库 156
11.3.3配置Path变量 157
11.4更改MySQL的配置 158
11.5MySQL安装失败解决方案 160
第12章 数据库的基本操作 161
12.1创建数据库 161
12.2删除数据库 163
12.3数据库存储引擎 164
12.3.1MySQL支持的存储引擎 164
12.3.2各存储引擎的区别 172
12.4查看默认存储引擎 173
12.5实战演练——创建数据库的全过程 174
第13章 数据表的基本操作 176
13.1新建数据表 176
13.1.1语法形式 176
13.1.2主键约束 178
13.1.3外键关联 180
13.1.4非空约束 182
13.1.5*性约束 182
13.1.6默认值 183
13.1.7设置自动增加属性 184
13.2查看数据表结构 185
13.2.1查看表结构 186
13.2.2查看创建表的语句 187
13.3修改数据表 188
13.3.1修改表名 188
13.3.2修改字段类型 189
13.3.3修改字段名 191
13.3.4添加字段 192
13.3.5删除字段 195
13.3.6修改字段的排列位置 196
13.3.7更改表的存储引擎 198
13.3.8删除表的外键关联 199
13.4删除数据库表 200
13.4.1删除简单的表 201
13.4.2删除关联表 202
13.5实战——数据库和数据表的基本操作 204
第14章 数据的基本操作 211
14.1添加数据 211
14.1.1为所有字段添加数据 211
14.1.2指定表字段添加数据 214
14.1.3添加多条记录 215
14.2更新数据 217
14.3删除数据 220
14.4查询数据 222
14.4.1基本查询语句 222
14.4.2查询所有字段 223
14.4.3查询指定字段 224
14.4.4查询指定记录 225
14.4.5带IN关键字的查询 227
14.4.6带BETWEEN AND的范围查询 228
14.4.7带LIKE的字符匹配查询 229
14.4.8查询空值 231
14.4.9带AND的条件查询 233
14.4.10带OR的条件查询 234
14.4.11查询结果不重复 234
14.4.12对查询结果排序 235
14.4.13分组查询 237
14.4.14LIMIT限制查询 240
14.5实战演练1——记录的添加、更新和删除 241
14.6实战演练2——数据表综合查询案例 247
第15章 数据库的备份和还原 254
15.1数据备份 254
15.1.1使用命令备份 254
15.1.2使用第3方工具快速备份 260
15.2数据还原 261
15.2.1使用命令还原 262
15.2.2使用工具快速还原 264
15.3数据库迁移 264
15.3.1相同版本的MySQL数据库迁移 265
15.3.2不同版本的MySQL数据库之间的迁移 265
15.3.3MySQL数据库迁移至Oracle数据库 265
15.4表的IMPORT和EXPORT 266
15.4.1表的EXPORT 266
15.4.2表的IMPORT 273
15.5实战演练——数据库的备份与恢复 278
第16章 PHP操作MySQL 284
16.1启动XAMPP中自带的MySQL数据库 284
16.1.1启动MySQL 284
16.1.2使用phpMyAdmin图形化操作MySQL 285
16.2PHP连接和关闭数据库 287
16.2.1连接数据库 287
16.2.2关闭数据库 288
16.3PHP操作数据库 288
16.3.1显示可用数据库 288
16.3.2创建数据库 289
16.3.3选择数据库 290
16.3.4删除数据库 291
16.4PHP操作数据表 292
16.4.1查看所有数据表 292
16.4.2新增数据表 293
16.4.3查看数据表字段 294
16.4.4编辑数据表 294
16.4.5删除数据表 296
16.5PHP操作数据 296
16.5.1新增数据 296
16.5.2查看数据 297
16.5.3编辑数据 299
16.5.4删除数据 300
16.5.5复杂的查询 301
第17章 使用RebBeanPHP更方便地管理数据 303
17.1下载安装RedBeanPHP 303
17.2快速开始 304
17.3RedBeanPHP的CRUD 306
17.3.1Create(新建)数据对象 306
17.3.2Retrieve(获取)数据 308
17.3.3Update(更新)数据 308
17.3.4Delete(删除)数据 308
17.4查询数据库 309
17.4.1查询参数绑定 309
17.4.2findOne方法 310
17.4.3findAll方法 310
17.4.4findCollection方法 310
17.4.5findLike方法 310
17.4.6findOrCreate方法 311
17.4.7findMulti方法 311
17.4.8getAll方法 311
17.4.9getRow、getCol、getCell方法 312
17.4.10getAssoc方法 313
17.4.11count方法 313
17.5操作数据库 314
17.5.1exec方法 314
17.5.2getInsertID方法 314
17.5.3inspect方法 314
17.5.4切换数据库 315
17.5.5事务 315
17.5.6冻结数据库 316
17.6调试RedBeanPHP 316
17.6.1startLogging、getLogs方法 316
17.6.2debug方法 317
17.7其他高级功能 318
17.7.1关系 318
17.7.2Models 319
17.7.3复制/克隆 319
17.7.4导入导出 319
第18章 使用PHP MySQL构建模拟考试系统 321
18.1功能分析 321
18.2准备工作 321
18.2.1设计数据表 322
18.2.2创建配置文件 323
18.2.3创建安装文件 323
18.3用户注册与登录 325
18.3.1用户注册 325
18.3.2用户登录 327
18.4首页 328
18.4.1首页 329
18.4.2检查管理员 330
18.5管理模块 330
18.5.1显示所有题目 330
18.5.2添加题目 332
18.5.3显示题目详情 334
18.5.4编辑题目 336
18.5.5删除题目 339
18.6用户模块 340
18.6.1考试页面 340
18.6.2查看历史考试记录 343
18.6.3更改密码 344
18.6.4退出登录 346
第19章 使用PHP MySQL构建在线购物网站 347
19.1功能分析 347
19.1.1设计算法 347
19.1.2表的设计 348
19.2准备工作 349
19.2.1配置文件 349
19.2.2安装模块 350
19.3注册登录模块 354
19.3.1注册模块 354
19.3.2登录模块 357
19.4显示模块 360
19.4.1头部模块 360
19.4.2核心显示模块 362
19.4.3购物车模块 367
19.4.4查看并统计购物车模块 368
19.5用户模块 372
19.5.1显示用户信息模块 372
19.5.2修改用户密码模块 373
19.5.3查看用户历史订单模块 376
19.6管理模块 379
19.6.1处理订单模块 379
19.6.2添加类别模块 381
19.6.3编辑类别模块 384
19.6.4添加商品模块 387
19.6.5编辑商品模块 390
19.6.6退出登录模块 395
【免费在线读】
第 10 章? 正则表达式 ?
要在计算机系统中查找某个文件,碰巧忘记了文件名,但知道该文件的类型,即知道该文件的后缀名,比如,要找一个图片,那么可能会通过*.png这样的字符来帮助查找,其中字符*就代表了一个或多个字符。计算机通过这样的字符组合,会将系统中所有以.png为后缀名的文件列出来,如:m.png、flag.png、river.png、mydog.png等,以便用户找到需要的图片文件。*.png就是一个表达式,我们可以简单理解为正则表达式(Regular expression)。正则表达式是一种可以用于模式匹配的强大工具。简单地说,正则表达式就是一套规则,用于去判定其他的元素是否符合它。PHP继承了Perl的正则表达式法则,还有自己的一套法则。本章将详细介绍PHP的正则表达式。10.1 在PHP中使用正则表达式本节通过一个例子让读者了解正则表达式在PHP中如何使用,以及PHP中有关正则的函数。这些函数与PHP 5中的函数不同,如果是升级PHP代码的读者请务必注意,调试PHP 5中的正则函数会报错。10.1.1 应用正则的函数在PHP中主要有3个函数来处理正则表达式,用来检查一个字符串是否满足一个的规则。它们都把一个正则表达式作为它们的*个参数,语法为:? int preg_match(string $pattern , string $subject):*常用的正则表达式函数,搜索跟正则表达式pattern匹配的一个字符串。搜索到返回1,否则返回0。这个函数在PHP 5中是ereg()。? string preg_replace(mixed $pattern , mixed $replacement , mixed $subject):搜索跟正则表达式pattern匹配的一个字符串,并用新的字符串代替所有这个表达式出现的地方,PHP 5中是replace()。? array preg_split(string $pattern , string $subject) :搜索和正则表达式匹配的字符串,并且以字符串集合的方式返回匹配结果。本节,旨在给出PHP提供的正则表达式函数,并简单介绍其功能。10.1.2 通过一个例子理解正则举一个简单的例子:在一个用户注册的页面中(例如,一个论坛或者交友网站的注册页面),上面可能有“电子邮件”这一项需要填写。对系统来说,需要判定用户所填写的电子邮件地址是否合法,即是否符合电子邮件地址的规则。【示例10-1】未使用正则检测电子邮件地址规则。<?php
作者: 韩啸,王瑞敬,刘健南编著
出版社:清华大学出版社,2011
简介: ASP.NET是微软力推的Web开发编程技术,也是当今最热门的Web开发手 段之一。ASP.NET 3.5技术提高了网络系统平台开发的效率和安全性,如 新增匿名类型、Lambda表达式和LINQ、集成ASP.NET Ajax、增强的数据控 件等。 韩啸、王瑞敬、刘健南编著的《ASP.NET Web开发学习实录(附光盘)》 重点围绕Web开发,结合精选教学视频,全程推演ASENET 3.5应用开发的整 个过程,引导读者深刻理解和掌握以ASP.NET从事Web应用开发所需要的基 本知识和技能。 《ASP.NET Web开发学习实录(附光盘)》共15章,主要内容包括 ASP.NET必备组件的使用、页面指令和语法、内置对象和类库、访问数据库 和文件以及结合MVC框架的知识。另外还对如何实现Ajax、与Flash通信、 实现绘图以及安全性有详细介绍。 本书可以作为ASP.NET 3.5的入门书籍,也可以帮助中级读者提高技能 ,对高级读者也有一定的启发意义。
作者: 苏静,江江编著
出版社:朝华出版社,2005
简介:这本书里有的是关于村上春树作品的自发或自觉的感悟和评说,有的是大家都关心的一些关于村上春树的问题,当然《嗨!村上春树》也有一些没有解决的问题,加之在村上春树的作品里曾屡屡强调“匿名性”之重要性。不过,《嗨!村上春树》这本书竭尽所能去解决了村上春树的读者关心的大部分部门。 这样一本书是献给每一个村上春树的热爱者的。 村上春树的文字已经写进了我们的很多人的生命里,真的要感谢村上先生的文字伴我度过了那么多人美好的日日夜夜。 我知道,有村上先生文字陪伴的那些时光终有一天会一去不返。 无论如何,我要轻轻地唤一声:嗨!村上春树
出版社:电子工业出版社 2016年11月
简介:
第十一届中国智能交通年会优秀论文汇集了国内外城市道路、公路、铁路、水运等不同智能交通领域的优秀论文83篇,主要包含智能交通的发展与政策、智能交通技术、智能交通应用、智能交通的成果及转化,以及智能交通领域最近的热点研究,对智能交通相关领域的技术人员、学者等有重要的参考价值。
【目录】
目 录
我国机动车驾驶人考场现状研究 1
多源数据融合的交通指数标准化云平台技术 10
物联网交通领域标识编码体系及标准研究 25
南宁市东葛路绿波方案仿真评估 33
基于精确定位的现代有轨电车信号系统 42
基于反馈控制的高速公路收费站入口通道调节效果研究 50
智能预警路锥的设计与应用 61
模拟赛车手在复杂赛道上的轨迹/速度决策行为 68
基于数据的公交车油耗分析与优化策略 77
基于互联网支付技术的地铁云购票机应用 85
货车在编组站中转方式推算方法研究 95
基于无人机的交通监控研究现状与展望 102
大数据环境物流云平台“车货携手”数据统一访问与转换关键技术研究 112
基于深信度网络的城市道路网交通流预测研究 120
城市轨道交通防踩踏事故预防与安全对策研究 127
主动安全新技术在我国载货汽车上的应用思考 134
制动初速度对平板制动检验结果的影响分析 140
Automatic Vehicle Navigation Based on Image Processing Using Kinect 149
大数据驱动的动态交通分配仿真及实证研究 157
基于CSF方法的智能交通管理系统规划编制标准建立及应用研究 166
关于北京市园区电动微公交系统建设的政策建议 174
基于高斯混合模型的北斗空间信号测距误差建模 184
A Multiclass Trip-chain Stochastic User Equilibrium Model under
Integrated Transportation Information 193
基于RFID技术的危险品货物关键运输卡口监控设计 205
基于Socket的公安交通集成指挥平台多线程通信协议测试技术研究与开发 220
城市道路机动车违法停车自动抓拍系统应用分析与思考 228
基于生态视角的沈阳市交通发展对策研究 234
车路协同环境下基于误差加权的车辆无线定位融合算法 241
基于模型预测控制与环境势场建模的车队协同驾驶方法研究 246
基于改进LSSVM的船舶操纵运动模型在线参数辨识方法 258
基于互联网地图的路况接入与融合发布技术研究 269
道路交通限行措施分析研究 274
城市老城区交通微循环设计与实践 280
考虑关联标识的指引信息可达性分析模型 285
降雨对城市快速路运行效率影响大数据分析 292
基于APP的交通事件处置管理模式研究 300
基于改进自适应微分进化算法的进港航班排序 308
基于ZigBee技术的车辆主动安全报警系统的研究与设计 317
基于Logistic回归的低等级公路重大交通事故分析 325
基于RFID和智能视频双机识别的军车不停车监理系统设计 332
大型综合体开发项目交通组织的研究与实践——以苏州中心项目为例 338
深圳市智能交通产业促进政策研究 346
基于卡尔曼滤波的高速公路交通状态估计模型构建及效果评价 355
车牌识别系统评测方法研究及图像库建立 367
论全息交通 379
多模式互反馈交通信号控制系统 390
包头智能交通建设的实践与思考 401
快速公交区段运行协同控制方法研究 406
基于APP的电动汽车分时租赁激励调度系统研究 414
An Event-driven Based Vehicle-to-roadside Data Interaction Scheme for Traffic Control Purpose 424
公交车噪声频谱特性研究 434
基于交叉口总体延误的公交信号主动优先控制方法及评估 439
基于排队长度的单点自适应信号控制方法 451
基于背景差分和Haar-like特征的客运站行人检测算法研究 459
自主队列行驶车辆纵向建模及仿真 467
一种基于数据交换平台的城市智能停车管理服务系统 478
基于EA方法论的中国高速铁路应急平台体系架构设计 485
基于可靠性的铁路应急资源调运优化模型 492
基于用户行为的订单实时缓存技术的研究 499
基于新一代铁路客票系统的高并发负载能力分析及优化 505
12306互联网售票系统测试的实现 513
铁路旅客全行程智慧出行方案研究 518
JWMQ在复杂环境下的可靠传输研究 524
城市轨道交通线网指挥中心信息安全体系研究 532
地铁乘客信息系统车载视频传输模式的研究 537
动车组日班计划智能辅助编制系统的研究 543
动车组智能钥匙管理系统的应用研究 551
基于RFID技术的动车组轮对管理系统研究 557
基于DocuBurst的动车组非结构故障数据可视化 565
基于LTE无线网络的综合业务承载研究 571
基于无线传感器网络的隧道环境监测和预警系统 577
路局机务管理信息化需求分析和架构设计 583
面向铁路统计基础数据的智能编码管理系统设计与实现 590
铁路安全监测信息整合应用研究 597
铁路沉降变形监测信息系统设计与实现 605
铁路货运安全检测监控与管理平台总体方案的研究 614
铁路隧道围岩量测信息系统关键技术研究及实现 624
铁路货车全寿命周期信息整合应用研究 630
基于动态时间规整的出租车终点和行程时间预测 635
基于手机蓝牙的交通特征参数提取方法研究 643
高速铁路异物侵限监测子系统可靠性分析方法的研究与实践 653
面向车载网的安全可追踪匿名认证方案 659
道路货运源头末端治超监管系统设计研究 664
作者: 阿加莎·克里斯蒂
出版社:商务印书馆 2016年08月
简介:
“阿加莎·克里斯蒂经典侦探作品集”丛书,是英国柯林斯出版公司精选的阿加莎·克里斯蒂的经典作品,由英国语言和文学专家专门为世界各地母语非英语的读者改编设计,每篇小说经过适当删减,其中的词汇和语法也做了简化,是适合中等以上英语水平读者学习的英语读物。书后所配的光盘由英国本土人士录制,声情并茂地再现精彩的故事内容。另外,每本书可配点读笔(需单独购买)。
《魔手》,伯顿兄妹搬到一个平静的乡村小镇疗养身心,可刚安顿下来,就接到了一封充满恶意的匿名信,指控两人。惊讶之余他们发现,小镇居民已经陆陆续续地收到了内容各异的匿名信,事态变得越发严重,终于演变成一场命案……
丛书书目:
怪屋
密码
地狱之旅
魔手
死亡约会
云中奇案
他们来到巴格达
国际学舍谋杀案
葬礼之后
命案目睹记
借镜杀人
鸽群中的猫
穿棕色套装的人
古屋疑云
罗杰疑案
斯泰尔斯庄园奇案
闪光的氰化物
寓所谜案
作者: (美)G斯坦利科利尔 编
简介: 《竞赛——文化建筑》全方位地报道近期的开放式竞赛作品、匿名竞赛作品、限制竞赛作品以及邀请作品,约128页,且附带光盘,在光盘中有演示视频。《竞赛》致力于搜集世界范围内的竞赛设计作品。另外,具体内容不仅通过详实的模型图、技术图以及由高级编辑、建筑师或教授撰写的竞赛背后的故事来完整展示近期的建筑竞赛作品;而且对全球具有天赋的建筑师进行独家专访,讨论他们近期的建筑竞赛作品、竞赛故事以及解题思路。栏目包括全球竞赛速览、竞赛作品展示、竞赛作品点评以及建筑师采访。
作者: 赵志军主编
出版社:人民音乐出版社,2010
简介:《易流行·钢琴弹奏流行歌曲集(1):心痛2009(简易版)》内容包括:孤单摩天轮、样子、何必在一起、雨爱、亲人、单人旅途、第几个一百天、灰色头像、背对背拥抱、娃娃脸、如果有来生、再见了我的爱、你还欠我一个拥抱、唱的是寂寞、匿名的好友、心痛2009、星月神话、我爱她、很安静、最炫民族风……
作者: 张倩主编
出版社:西安交通大学出版社,2009
简介:《英语阅读读霸天下:夜晚篇3》的主要内容是:这套书分为三册,每一册又分为晨、夜两个板块。晨读系列中,每篇文章,包括“文章诵读”、“语音提示”这三大部分,一些文章还有“知道点”小栏目。其中“语音提示”是一个特色。英语毕竟是一门语言,“读”是一个输入的过程,而这门语言的输出除了“写”,还应包括“说”。对于英语学习者而言,很多时候他可以读懂,却很难读准。因此,不同于其他阅读类书籍,我们在晨读中加入了“语音提示”这一板块,提供给读者一些发音规律,如省读、连读,弱读等,培养读者正确发音的能力,这样,“读”就可以为“说”服务了。在夜读系列中,每篇文章包括三大部分:导读、单词注释、文章正文。主要是为了给读者创造一个没有压力的阅读氛围,让读者可以自由地体验英语,用英语去感悟,在这种轻松阅读的氛围下,逐渐建立英语思维。这套书在选材上涵盖了诸多领域,包括文学、文化、历史、人文,科学等等;书中的文章均摘自名家名作或网络流行的经典美文。为了便于读者更好地学习,我们邀请外籍专家对文章做了一些局部修改。晨读宜于诵读,而夜读则更适合普通的阅读。各册在自成体系的同时,又注重了循序渐进的原则,帮助读者在不知不觉中培养起阅读的良好习惯。书中的一些文章摘自网络,多为匿名发表。在此,我们对于作者及网站一并表示感谢。正如培根所说,“读书足以怡情,足以博彩,足以长才”。的确如此,然而要想在阅读中得到这样的收益,就要养成长期阅读的好习惯。我们编这套书,更重要的是在于让读者明白,阅读本身就是一种习惯,一旦养成,将受益无穷。抛开其他,如果这套书能达到这样的效果,已经足以让编者欢欣鼓舞了。由于水平有限,书中难免有不妥之处,敬请读者批评指正,以便日后改进。
出版社:清华大学出版社, 2022.9
简介:互联网已经成为社情民意的重要表达方式,我国进入了网络舆论空前活跃的时代。由于网络传播具有匿名性、速度快、范围大、持续力强、传播渠道多元化、传播效果点,网络舆情的效果是正向还是负向,或者是正负反转,在很大程度上取决于网络舆情应对的策略和方法。因此,当网络舆情出现时需要引导舆情的走向,使网络舆情方向发展,促进社会的和谐与稳定。 《新媒体舆情监测与管理》根据网络舆情的发生及发展特点,介绍了网络舆情监测、搜集、预警、评估、引导、应对等手段。《新媒体舆情监测与管理》共分为7章,包代与网络舆情、网络舆情的监测与搜集、网络舆情预警、网络舆情的评估与引导、网络谣言与负面信息的应对、突发事件网络舆情应对和网络舆情报告等内容。另外,情监测与管理》还赠送课程标准、授课大纲、讲义、PPT课件以及测试题,以便读者学习和教师授课。 《新媒体舆情监测与管理》内容清晰,语言简洁通俗,舆情案例丰富,适合各级政府工作人员和舆情相关从业人员阅读,同时对于那些对新媒体时代网络舆情感兴趣的媒体舆情监测与管理》也可满足其阅读需求。
作者: 张倩主编
出版社:西安交通大学出版社,2008
简介:《读霸天下英语阅读(夜晚篇1)》内容简介:这套书分为三册,每一册又分为晨、夜两个板块。晨读系列中,每篇文章,包括“文章诵读”、“语音提示”这三大部分,一些文章还有“知道点”小栏目。其中“语音提示”是一个特色。英语毕竟是一门语言,“读”是一个输入的过程,而这门语言的输出除了“写”,还应包括“说”。对于英语学习者而言,很多时候他可以读懂,却很难读准。因此,不同于其他阅读类书籍,我们在晨读中加入了“语音提示”这一板块,提供给读者一些发音规律,如省读、连读,弱读等,培养读者正确发音的能力,这样,“读”就可以为“说”服务了。在夜读系列中,每篇文章包括三大部分:导读、单词注释、文章正文。主要是为了给读者创造一个没有压力的阅读氛围,让读者可以自由地体验英语,用英语去感悟,在这种轻松阅读的氛围下,逐渐建立英语思维。这套书在选材上涵盖了诸多领域,包括文学、文化、历史、人文,科学等等;书中的文章均摘自名家名作或网络流行的经典美文。为了便于读者更好地学习,我们邀请外籍专家对文章做了一些局部修改。晨读宜于诵读,而夜读则更适合普通的阅读。各册在自成体系的同时,又注重了循序渐进的原则,帮助读者在不知不觉中培养起阅读的良好习惯。 书中的一些文章摘自网络,多为匿名发表。在此,我们对于作者及网站一并表示感谢。 正如培根所说,“读书足以怡情,足以博彩,足以长才”。的确如此,然而要想在阅读中得到这样的收益,就要养成长期阅读的好习惯。我们编这套书,更重要的是在于让读者明白,阅读本身就是一种习惯,一旦养成,将受益无穷。抛开其他,如果这套书能达到这样的效果,已经足以让编者欢欣鼓舞了。由于水平有限,书中难免有不妥之处,敬请读者批评指正,以便日后改进。
第十二届中国城市住宅研讨会论文集 Proceedings of The 12th China Urban Housing Con
光盘作者: 邹经宇
简介:
本书编录之论文,紧密围绕本届研讨会主题“可持续高密度人居环境建设的智慧化与创新”展开讨论,主要分为特邀论文与专题论文两大部分。特邀论文为本届研讨会组织委员会邀请海峡两岸及国际相关领域的杰出专家学者、资深专业人士撰写,反映了本届研讨会主题相关议题的前沿成果,具有较强的代表性和启发性。专题论文为经过双向匿名评审入选本届研讨会的论文,并根据不同专题收录于本书中。
新一代PHP+MySQL+Dreamweaver网站建设典型案例
光盘作者: 张枭编著
出版社:清华大学出版社,2006
简介:本书全面系统地介绍了使用PHP、MySQL和XML进行Web应用程序及网站开发的过程,并通过剖析10大型商用案例,使读者迅速掌握使用PHP进行开发的方法和技巧,同时具备开发各种网站的能力。 本书内容包括:会员管理系统、新闻发布系统、PHP文件管理系统、网站访问量统计系统、Ajax聊天室系统、PHP在线相册系统、PHP在线投票系统、PHP留言簿系统、PHP校友录系统及匿名上传下载系统等。 本书不仅适合初学者学习PHP网络开发技术,还能够帮助有一定编程经验的PHP编程人员解决开发过程中遇到的问题。本书可作为高等院校相关专业的辅助教材,也可作为PHP的培训用书或毕业设计学生的参考用书。
Professional JavaScript for web developers
作者: (美)Nicholas C. Zakas著;李松峰,曹力译
出版社:人民邮电出版社,2010
简介: 本书在上一版基础上进行了大幅度更新和修订,融入了近几年来 JavaScript应用发展的最新成果,几乎涵盖了所有需要理解的重要概念和 最新的JavaScript应用成果。从颇具深度的JavaScript语言基础到作用域( 链),从引用类型到面向对象编程,从极其灵活的匿名函数到闭包的内部机 制,从浏览器对象模型(BOM)、文档对象模型(DOM)到基于事件的Web脚本设 计,从XML(E4X)到Ajax及JSON,从高级前端开发技术到前沿的客户端存储 ,从最佳编程实践到即将成为现实的API,直至JavaScript未来的发展,全 景式地展示了JavaScript高级程序设计的方方面面。 本书适合不同层次的JavaScript/Web开发人员阅读参考,也可作为高 校相关专业课程的教材。
作者: 周长发编著
出版社:电子工业出版社,2007
简介: 本书以面向对象编程技术和.NET框架类库为主轴,透彻地介绍了C#的语 法、编程思想和高级.NET框架编程技术。全书分为三部分,共22章,全面详 细地解说了C#的技术要点,包括C#语言基础、C#的面向对象特征、异常处理 、委托与事件、集合、泛型、字符串与正则表达式、特性、反射、程序集与 版本控制、.NET框架的内存管理、多线程、Windows窗体、GDI+、与非托管 代码互操作等,对每一个知识点都提供了典型实例。本书基于C#和.NET框架 的最新版本而编写,介绍了C#的最新特色,包括泛型、匿名方法、迭代器、 静态类、分部类型和可空类型等。本书既阐述了C#的基础知识,又介绍了C# 的高级应用技术,包括多线程、异步调用、图形图像处理、游戏编程、与 COM等非托管代码的互操作,以及插件编程等。 本书适合所有希望了解和掌握C#和.NET的开发人员阅读,是大专院校计 算机相关专业和各类培训班的理想教学参考书。



















