您的位置:首页 > Web前端 > JavaScript

JavaScript介绍及引述

2013-11-05 21:30 363 查看
1,人们对javascript的误解:
很多人认为js很简单,但其实如果想把js研究的比较透彻最少需要一个多月的时间。
有些人认为js并不是一种语言,其实是开发性语言和脚本性语言。
认为js属于java web的内容。其实不是,js不只适用于javaweb,它可以工作与很多平台。js是独立于平台的,是真正意义的跨平台,只有浏览器支持就可以解析执行。
2,用javascript时的问题:
代码没提示?继承aptana。
语法错误不提示?通过aptana可以解决。
Firedug的debug模式调试js代码。
3,javascript的介绍:
(1)js发展历史:
在1995年由Netscape(网景)公司推出LiveScript(javascript的前身),在此之前,没有所谓的前端技术。所有的处理都需要由服务器端进行操作,对服务器的压力产生了较大的影响,对带宽的要求也比较高。当时的目的是同时在客户端和服务器端使用。
网景公司主要做的是浏览器,在没有IE的时候就有网景浏览器了,当时占有80%-90%的市场份额。推出LiveScript的目的就是增强浏览器的性能。但是推出了之后使用的人不是很多,网景很发愁,它就找到了当时最牛的公司sun公司,联合sun公司推出了一款全新的产品,同时更名为JavaScript,为什么更名为JavaScript呢?因为当时有一个语言超级火,叫做Java。
注意:Java与JavaScript的关系:没有关系,就相当于雷锋与雷峰塔的关系。
果不其然,改了名就超级火了,然后就被另一个牛X公司盯上了——微软公司。微软推出了IE3.0.这是一个非常重要的版本,因为在IE1.0和2.0的时候,IE在全球市场的份额不到10%。而IE3.0是微软想重整旗鼓的版本,他就想把这个版本做到最好。那他就需要提升性能,然后他就看到JavaScript不错,可以拿过来用一用,但是当时的微软比sun公司还牛,所以他是不会使用sun公司的产品的,就做了一件很可耻的事情,自己退出了一款叫做Jscript的语言。
注意:Jscript与Javascript的关系:内容一模一样,但是是两家公司的两个产品,所以是没有关系。
这个时候就在市面上存在了两个版本,对于我们开发者而言,需要二者兼顾。所以这时出现了版本不统一的问题,这个问题相当严重。网景公司意识到了这个问题,他知道肯定搞不定微软,他很聪明,所以网景公司就联合sun公司以及微软公司还有欧洲计算机制造商协会(ECMA),又推出了一个全新的版本叫做ECMAScript。
微软当时收到网景的联合邀请,就想:联合就联合吧。但是自己的Jscript该怎么搞还怎么搞。
至此网景公司好心办了坏事,初衷是让版本统一,但是ECMAScript推出后,出现了三个版本。所以到目前为止,javascript版本不统一问题依旧存在,这也是我们学习js中最头疼的一个问题。
版本到底是怎样不统一的呢?版本不统一是因为标准不统一,那javascript中的标准又是由谁来决定的呢?为什么微软说推出一个Jscript就推出一个Jscript呢?微软推出的Jscript集成到了IE浏览器中,javascript应该集成到网景公司的浏览器中,那浏览器又怎样决定它使用什么脚本语言呢?这就要说到浏览器的内核。
关于浏览器的内核:这三种脚本语言取决于浏览器内核的支持。不同浏览器使用的内核是不同的。那么现在主流的内核有几种呢?
首先是IE内核,它自己就存在三个内核,第一个是IE6.0以及IE7.0,第二个是IE8.0和9.0,第三个是IE10.0和11.0。现在的win8最早是IE10,而win7最早是IE8,IE6和IE7基本不存在了,所以我们对于IE最少要考虑两个内核。 而IE10和IE11都不好用,IE10是经常崩溃的。
此外,是除IE外的其他浏览器。主要有火狐浏览器,谷歌浏览器,苹果浏览器,这三个同使用同一个内核,叫做webkit,这个内核是苹果的产品。而谷歌浏览器最近宣布要使用自主内核,火狐浏览器也要推出自主内核,也就是说,苹果的webkit用的越来越少,浏览器内核越来越多了。国内产品主要有百度浏览器,腾讯浏览器,傲游浏览器,这三个宣称用的是自主内核,其他的要么用的是IE内核,要么用的是webkit内核。
开发的时候尽量不要使用国产的浏览器产品!现在基本上都是用火狐。
所以,造成javascript不统一的原因就是浏览器内核的原因。Webkit曾经差一点就把内核统一了,那个时候就差IE了,但是现在越来越多,统一内核就更难了。
(2)JavaScript的核心组成部分:
1)第一个核心:ECMAScript
这个ECMA是一个类似w3c的制作标准的组织。所以ECMAScript后期发展成为一种标准。现在最新的标准是ECMA-262(面试)标准,它不仅属于Javascript,还有很多其他的脚本语言如微软的VBScript。这些脚本语言里的核心标准都是ECMAScript。
ECMAScript描述了以下内容:语法、类型、语句、关键字、保留字、运算符、对象。
ECMAScript中80%左右的内容与Java保持一致。
l 区分大小写:与Java一样。变量、函数名、运算符以及其他一切东西都是区分大小写的。
l 变量是弱类型的:与Java不一样。ECMAScript中的变量无特定的类型,定义变量时只用var 运算符,可以将它初始化为任意的类型。变量的类型取决于给变量赋值的内容。
l 每行结尾的分号可有可无:与Java不一样。如果一条语句的结尾没有分号表明结束的话,前提是这样没有破坏代码的语义。最好的编写代码习惯是加入分号。
l 注释:与Java一样。支持”//”、”/**/”这几种常见的注释方式。
l {}括号表明代码块:与Java一样。

2)第二个核心:BOM(Browser Object Model)浏览器对象模型
就是放浏览器对象的,浏览器中也有对象。既然是浏览器对象,就应该属于浏览器的,所以他也不是专属于Javascript的。
3)第三个核心:DOM(Document Object Model)文档对象模型
以前学习的dom是解析xml的,现在学习dom是解析html的。
DOM的特点:
l DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTML或XML文档的常用方法。
l DOM可以用于任何编程语言。
l DOM技术使得用户页面可以动态地变化,如可以动态地显示或隐藏一个元素,改变它们的属性,增加一个元素等, DOM技术使得页面的交互性大大地增强。
l DOM实际上是以面向对象方式描述的文档模型。可以把DOM认为是页面上数据和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现。
l DOM 可被 JavaScript 用来读取、改变 HTML、XHTML 以及 XML 文档。
l DOM 被分为不同的部分(核心、XML及HTML)和级别(DOM Level 1/2/3)。
DOM的级别:
l DOM Level 1
DOM Level 1 是W3C于1998年10 月提出的第一个正式的 W3C DOM规范。它由DOM Core 和DOM HTML两个模块构成。前者提供了基于 XML的文档的结构图,以方便访问和操作文档的任意部分;后者添加了一些 HTML 专用的对象和方法,从而扩展了 DOM Core。
DOM Level 1 的主要目标是合理规划文档的结构。它的最大缺陷就是忽略了事件模型,其中包括NN2 和IE3 中最简单的事件模型。
l DOM Level 2
DOM Level 2 基于DOM Level 1 并扩展了 DOM Level 1,添加了鼠标和用户界面事件、范围、遍历(重复执行 DOM文档的方法)、XML命名空间、文本范围、检查文档层次的方法等新概念,并通过对象接口添加了对CSS 的支持。同时引入几个新模块,用以处理新的接口类型,包括:
l DOM视图——描述跟踪文档的各种视图(即CSS 样式化之前和CSS 样式化之后的文档)的接口;
l DOM事件——描述事件的接口;
l DOM样式表——描述处理基于CSS 样式的接口;
l DOM遍历和范围——描述遍历和操作文档树的接口。
l DOM Level 3
DOM Level 3 引入了以统一的方式载入和保存文档的方法(包含在新模块 DOM Load and Save 中)以及验证文档(DOM Validation)的方法,从而进一步扩展了 W3C DOM规范。
在DOM Level 3 中,DOMCore 被扩展为支持所有的 XML 1.0 特性,包括XMLInfoset、XPath和XML Base,从而改善了DOM对XML的支持。
DOM规范级别:
l DOM Level 0
l DOM Level 0 不是 W3C 标准。
l 而仅仅是对在 NetscapeNavigator 3.0 和 Microsoft Internet Explorer 3.0 中的等价功能性的一种定义。
l DOM Level 0 其实就是定义的一些Document对象的属性和方法。
DOM的组成部分:
l 核心DOM:指定类属类型,将带有标记的文档看成树状结构并据此对文档进行相关操作。
l HTML DOM:提供用于操作HTML 文档以及类似于JavaScript 对象模型语法的功能部件,在核心DOM的基础上支持对所有HTML 元素对象进行操作。
l XML DOM:使用DOM来解析XML文件。
DOM CSS:提供脚本编程实现CSS 的接口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: