JavaScript概述
今天开始正式学习JavaScript(以后简称JS).所谓的JS语言是面向web的编程语言,我们可能接触过面向过程和面向对象的编程语言.为什么要学习JS呢?因为绝大多数现代网站都使用了JS,并且所有的的现代web浏览器----基于桌面系统,游戏机,平板电脑和智能手机的浏览器----均包含了JS解释器,这使得JS能够称得上是史上使用最广泛的编程语言.JS也是前端开发工程师必须掌握的三种技能之一:描述网页内容的HTML,描述网页样式的CSS以及描述网页行为的JS.
JS是一门动态的,弱类型的编程语言,非常适合面向对象和函数式编程的风格.JS的语法源自JAVA(虽说JAVA很火,但是我不喜欢,但是不喜欢能有什么办法呢,忍着吧),JS的一等函数来自于sScheme,它的基于原型的继承来自于Self.但是学习JS不必了解其他语言.
JS和JAVA没有半毛钱的关系,它们两者之间除了语法看起来类似之外,其他的完全不同,JS早已超出了其”脚本语言”本身的范畴,而成为了一种集健壮性,高效性和通用性为一身的编程语言.
JS和JAVA的对比:
JS |
JAVA |
面向对象的.对象的类型间没有区别.继承是基于原型机制实现的,且属性和方法可以动态的添加到任何对象之上 |
基于类的.对象被划分为类和实例,且所有的继承是通过类的层级结构实现的.类或者势力不能动态的添加属性或方法 |
变量的数据类型无需声明(动态化类型) |
变量的数据类型必须声明(静态化类型) |
不能自动的写入硬盘 |
不能自动的写入硬盘 |
JS的历史
JS是由web发展初期的网景(Netscape)公司创建,并将JS首先用于NetScape浏览器中.不过Netscape正在与ECMA International一道致力于交付一个基于核心JS的,标准化的,国际化的编程语言,即ECMAScript(还能再难听点吗).ECMAScript 在所有支持该标准的应用程序中具有相同的特性。其它公司可以使用开放的标准语言来开发它们的 JavaScript 实现。ECMAScript 标准在 ECMA-262 规范中加以记述。
简单说一下JS版本和ECMAScript版本的区别
JS版本 |
ECMAScript版本 |
JS1.1 |
ECMA-262,第一版基于JS1.1 |
JS1.2 |
ECMA-262 在 JavaScript 1.2 发布时尚未完成。由于以下原因,JavaScript 1.2 并不与 ECMA-262,第 1 版完全兼容: 1.Netscape 在 JavaScript 1.2 开发了一些新的特性尚未被 ECMA-262 采纳。 2.ECMA-262 添加了两项新特性:基于 Unicode 的国际化,以及跨平台的一致行为。而 JavaScript 1.2 的某些特性,例如 Date 对象,是依赖于平台的,且具有特定于平台的行为。 |
JS1.3 |
JavaScript 1.3 完全兼容于 ECMA-262,第 1 版。 JavaScript 1.3 解决了 JavaScript 1.2 与 ECMA-262 之间的不一致性,同时保留了 JavaScript 1.2 中的附加特性,除了 == 和 != 被修改以便顺应于 ECMA-262 之外。 |
JS1.4 |
JavaScript 1.4 完全兼容于 ECMA-262,第 1 版。 ECMAScript 规范的第三版在 JavaScript 1.4 发布时尚未最终完成。 |
JS1.5 |
JavaScript 1.5 完全兼容于 ECMA-262,第 3 版。 |
注:ECMA-262,第 2 版仅包含对第 1 版规范的细微的编辑性的改动和错误修正。由 Ecma International 的 TC39 工作组发布的最新版本为 ECMAScript 版本 5.1
.JavaScript 将总会包含某些 ECMAScript 规范中所没有的特性;JavaScript 兼容于 ECMAScript,同时提供附加特性。
avaScript 文档相较于 ECMAScript 规范
ECMAScript 规范了实现 ECMAScript 的一组需求;它有助于您确定某项 JavaScript 特性是否也为其它 ECMAScript 的实现所支持。如果您想编写仅仅使用 ECMAScript 所支持的特性的代码,那么您可能需要参考 ECMAScript 规范。
ECMAScript 文档的目的不在于帮助脚本程序员;关于脚本编写的信息,请参考 JavaScript 文档。
JavaScript 和 ECMAScript 术语
ECMAScript 规范使用的术语和语法对于 JavaScript 程序员而言,可能会有点陌生。尽管对语言的描述方式在 ECMAScript 中可能不尽相同,但是语言本身还是相同的。JavaScript 支持 ECMAScript 规范中所勾勒出的全部功能。
JavaScript 文档描述了语言中适合于 JavaScript 程序员的方面。例如:
1.JavaScript 文档中没有描述全局对象,因为不会直接用到它。全局对象的属性和方法在 JavaScript 文档中被称为顶层函数和属性。
2.JavaScript 文档中没有讨论 Number 和 String 对象的无参(零个参数)构造器,因为几乎不会用到其生成的对象。无参的Number 构造器返回 +0,而无参的 String 构造器返回 "" (空的字符串)。
JS初探
当学习一门新的编程语言时,应当对照树中的示例边学边动手做,反复演练以加深自己的理解.因为,你需要一个JS编译器(实际上叫做解释器).幸运的是,每一个web浏览器都包含一个JS解释器,或许你的电脑上已经不止有一个浏览器(IE,火狐,360,UC,猎豹).
可以通过在HTML文件里写一个<script>标签来嵌入JS代码,当浏览器加载HTML文件的时候,他会自动执行这段代码.如果运行的是一小段JS代码,则不必每次都这样做.我么可以利用Firefox的一个强大的革命性的插件Firebug(可下载使用)来运行这些小段代码,而且如今的web浏览器带有很多开发工具,可以用来调试,实验和学习.通常在浏览器的”工具”菜单中可以看到类似”开发者工具”或者”web控制台”的选项.可以通过按F12键或者Ctrl+Shift+J快捷键来唤醒控制台.控制台工具通常会在浏览器窗口的顶部或底部,有时候也可以单独打开一个窗口.
通过”开发者工具面板”窗口包含了很多选项卡,可以查看HTML文档结构,CSS样式,网络请求等.其中第一个选项卡是”JS控制台”,可以直接输入JS代码并运行出结果.用这种方式来调试JS既简单又实用.
一些现代浏览器有可能实现了一个简单的控制台API.可以通过使用函数console.log()来向控制台输出消息,实用console.log()来做简单的输出演示,通过这种方式可以方便的调试示例代码.同样也可以通过给alert()函数传入一段文本来弹出一个对话框,但这种输出调试信息的方法更具有侵入性.
版权声明:本文为博主原创文章,未经博主允许不得转载。