《JavaScript应用程序设计》一一第1章 JavaScript的革命时代

第1章

JavaScript的革命时代

JavaScript恐怕是现今世界上最为流行的程序语言,虽然它曾经被人们视为“玩具语言”,但现在它已经成为历史上应用最广的程序语言。只要你拥有计算机或智能手机,基本上就可以运行JavaScript程序并创建自己的程序。构建JavaScript程序所需的配置也很简单,你需要的仅仅是一个浏览器与一个文本编辑器。

JavaScript、HTML、CSS现在已经变得非常流行,许多操作系统已经开始使用这些开放的Web 技术来构建原生应用的表现层,包括Windows 8(http://bit/ly/1pFDDx2)、Firefox 操作系统(http://mzl.la/1oO2i1J)、 Gnome(http://bit.ly/1pFBnFV)、Google 的Chrome 操作系统(http://chromium.org/chromium-os)。此外,在iPhone与Android两大移动操作系统平台上,webview让JavaScirpt与HTML5特性进驻原生应用也成为可能。

同时JavaScript正在向硬件领域迈进,诸如Arduino(http://bit.ly/1iY0ceO)、Tessel(http://tessel.io/)、 Espruino(http://www.espruino.com/)与NodeBots(http://nodebots.io/)等项目的催生预示了在不远的未来JavaScirpt或许将成为嵌入式系统与机器人领域的标准语言。

首先编辑一个文本文件,随后将之在浏览器中打开查看效果,创建一个JavaScript程序就是这么简单,整个过程不需要你去下载安装任何复杂的开发环境或IDE工具。JavaScript 的学习同样十分容易,任何一个拥有类C语言编程经验的程序员都可以很快掌握JavaScript 的基本语法,还没有任何一门语言拥有像JavaScript这样低的学习门槛。

JavaScript在当年被人们称作“玩具语言”,很大程度上是源于其“低门槛”的语言特征,那时候,它仅仅用来在浏览器中制作界面特效,但现在时局已变。

长时间以来,人们无法使用JavaScript 保存数据,唯有通过提交表单的方式将数据发送到Web服务器端并等待页面更新来实现数据持久化。这导致开发者很难构建出响应速度快的动态Web 应用。微软于2000年在IE浏览器中悄悄搭载了Ajax 技术,此后,其他浏览器厂商也逐渐实现了标准的XMLHttpRequest对象。

Google在2004年推出了 Gmail邮箱服务,Gmail以其近乎无限的邮箱存储空间获得了用户的青睐,同时它也引发了一场Web领域中的重大革新,传统服务器端控制页面刷新的时代一去不复返了。Gmail 使用Ajax技术打造了一款高性能、响应快速的Web单页应用,它永久改变了Web应用程序的设计方式。

从那时起,各式各样类型的Web应用程序开始催生出来,这其中就包括基于云端的企业型办公套件(见Zoho.com)、以 Facebook 的 JavaScript SDK 为代表的社交API,甚至是一些需要绘制大量图形的电子游戏等。

所有这一切都验证了阿特伍德定律(http://bit.ly/1pFCjtR):“任何可以用JavaScript来实现的应用,最终都将被JavaScript改写”。

时间: 2024-12-04 08:27:38

《JavaScript应用程序设计》一一第1章 JavaScript的革命时代的相关文章

《AngularJS高级程序设计》——第5章 JavaScript基础 5.1准备示例项目

第5章 JavaScript基础 在本章中,我提供了JavaScript语言最重要特性的快速指南,它们适用于本书.我没有余力完整地讲解JavaScript,但我会专注其本质,即你需要快速了解情况并随着本书的示例走.除了最重要的JavaScript语言核心特性外,我还会讲述AngularJS提供的工具方法集. 通过演示JavaScript如何使用承诺,我完成了这一章.承诺代表异步任务,比如Ajax请求,而且它们在AngularJS应用中是广泛使用的,我在第21章会再谈这一话题.我还讲到Angula

关于《javascript 高级程序设计》里“稳妥构造函数模式“的一点疑问

问题描述 关于<javascript 高级程序设计>里"稳妥构造函数模式"的一点疑问 在<javascript 高级程序设计>第六章6.2.7提到"稳妥构造函数模式"的稳妥对象,指的是没有公共属性,而且其方法也不引用this 的对象,最适合在一些安全的环境中(这些环境中会禁止使用this 和new),或者在防止数据被其他应用程序(如Mashup程序)改动时使用.书中举例如下: function Person(name, age, job){

《JavaScript应用程序设计》一一第2章 函数

第2章 函数函数是构建应用程序的最小功能单元,它们在JavaScript中尤为重要.函数作为JavaScript中的"一等公民",既可以作为对象使用,也可以在程序运行时动态声明.这些与其他语言截然不同的函数特性正是JavaScript所独有的,为了能够在应用中最大程度发挥这些特性的优势,你需要对JavaScript函数的工作机理做全面深入的了解,相信在读完本章后,你将会以一个全新的视角去看待函数.下面介绍一些编写函数时需遵循的最佳实践:不要重复造轮子优秀的程序员向来是懒惰与效率的结合体

JavaScript高级程序设计(第三版)学习笔记6、7章_javascript技巧

第6章面向对象的程序设计 对象 1.数据属性 configurable表示能否通过delete删除属性从而重新定义属性能否修改属性的特性或能否把属性修改为访问器属性默认为true enumerbale表示能否通过for-in访问属性默认true writable表示能否修改属性值默认true value数据存储位置默认undefined 修改默认属性特性Object.defineProperty()接收三个参数属性所在对象属性名描述符对象描述符对象属性必须是configurable.enumer

《JavaScript应用程序设计》一一1.5 函数是一等公民

1.5 函数是一等公民 在JavaScript中对象显得至关重要,几乎JavaScript中包括函数在内的一切元素皆为对象.由于具有对象的特性,函数可以被当作变量与数据使用,如被当作参数传入另外一个函数中,这项技术经常在匿名函数回调或异步操作等场景下使用,也常常会被用来创建高阶函数.在函数式编程中高阶函数被用来对诸如迭代器.非数据性指令集合等可复用的通用代码模式进行抽象.诸如map().reduce()与forEach()方法是函数式编程应用的典型案例,我们将在本书中介绍Underscore.j

JavaScript高级程序设计(第3版)学习笔记9 js函数(下)_基础知识

再接着看函数--具有魔幻色彩的对象. 9.作为值的函数 在一般的编程语言中,如果要将函数作为值来使用,需要使用类似函数指针或者代理的方式来实现,但是在ECMAScript中,函数是一种对象,拥有一般对象具有的所有特征,除了函数可以有自己的属性和方法外,还可以做为一个引用类型的值去使用,实际上我们前面的例子中已经有过将函数作为一个对象属性的值,又比如函数也可以作为另一个函数的参数或者返回值,异步处理中的回调函数就是一个典型的用法. 复制代码 代码如下: var name = 'linjisong'

JavaScript高级程序设计(第3版)学习笔记7 js函数(上)_基础知识

变量类型 在说函数之前,先来说说变量类型. 1.变量:变量在本质上就是命名的内存空间. 2.变量的数据类型:就是指变量可以存储的值的数据类型,比如Number类型.Boolean类型.Object类型等,在ECMAScript中,变量的数据类型是动态的,可以在运行时改变变量的数据类型. 3.变量类型:是指变量本身的类型,在ECMAScript中,变量类型就只有两种:值类型和引用类型.当变量的数据类型是简单数据类型时,变量类型就是值类型,当变量的数据类型是对象类型时,变量类型就是引用类型.在不引起

Pro JavaScript Techniques第七章: JavaScript与CSS

  JavaScript和CSS的交互是现代JavaScript程序设计的支柱.事实上对于所有的现代web应用程序来说,至少使用某些形式的动态交互是必须的.那么做过之后,用户可以更快地操作而更少地把时间浪费在等待页面加载上.将动态技术与第六章提出的事件方面的观念相结合,对于实现无缝而强大的用户体验是非常重要的. 层叠式样式表是用来对易用的.有吸引力的网页进行修饰和布局的事实标准,它在给用户提供最少的困难的同时为开发者提供最多的能力.当你将那一能力与JavaScript相结合时,你将能够构造强健的

《JavaScript高级程序设计》学习笔记

系统学习JS, 从<JavaScript高级程序设计>入门,通过学习jQuery或者angularJS源码来进阶. 第1章 JavaScript简介 1.JS问世的目的是处理以前由服务器端语言(如Perl)负责的一些输入验证操作, 由Netscape主导开发,那时候微软的IE还不能独领风骚.最初叫做LiveScript,当时媒体热炒Java,于是改名为JavaScript. JavaScript和ECMAScript通常指同一门语言,但是,JavaScript是ECMA-262标准的实现和扩展