DOM初探(18)——让滚动条滚动

五:DOM基本操作:

让滚动条滚动

     window上有三个方法

     scroll(x,y),scrollTo(x,y)        scrollBy();

三个方法功能类似,用法都是将x,y坐标传入。即实现让滚动条滚动到当前位置。

区别:scrollBy()会在之前的数据基础之上做累加。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>abraham</title>
        <style>
            .div1{
                width: 300px;
                height: 300px;
                border: 2px solid black;
                position: static;
                /* static是position的默认是,静态的意思 */
                margin-top: 100px;
                margin-left: 100px;
            }
            .div2{
                width: 100px;
                height: 100px;
                position: absolute;
                margin-top: 100px;
                margin-left: 100px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <div class="div1">
            <div class="div2"></div>
        </div>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <script type="text/javascript">
            var div = document.getElementsByClassName("div2")[0];
        </script>
    </body>
</html>

window.scroll(x,y)和window.scrollTo(x,y)是一样的方法,但是window.scrollBy(x,y)叫做累加滚动条的距离,

 

练习42:利用scroll()快速阅读的功能。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>abraham</title>
    </head>
    <style>
        .stop,
        .start{
            width: 100px;
            height: 100px;
            font-size: 20px;
            font-weight: bolder;
            color: red;
            text-align: center;
            line-height: 100px;
            border-radius: 50%;
            opacity: 0.5;
        }
        .start{
            background-color: orange;
            position: fixed;
            bottom: 200px;
            right: 50px;
        }
        .stop{
            background-color: green;
            position: fixed;
            bottom: 100px;
            right: 50px;
        }
    </style>
    <body>
            百度首页 登录 注册 网页 新闻 贴吧 知道 音乐 图片 视频 地图 文库 百科
  javascript
            进入词条全站搜索帮助
            声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。详情>>
            首页
            历史上的今天
            百科冷知识
            图解百科
            分类
            艺术科学自然文化地理生活社会人物经济体育历史
            秒懂百科
            秒懂少儿APP
            秒懂星课堂
            秒懂大师说
            秒懂看瓦特
            秒懂五千年
            秒懂全视界
            特色百科
            数字博物馆
            非遗百科
            百度数说
            城市百科
            恐龙百科
            多肉百科
            用户
            蝌蚪团
            燃梦计划
            百科任务
            百科商城
            权威合作
            合作模式
            常见问题
            联系方式
            个人中心
            收藏 5365
            581
            javascript 锁定
            本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。
            JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
            在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。 [1] 
            为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。
            外文名 JavaScript 发行时间 1992年 设计者Brendan Eich 实现者Netscape、Mozilla基金会 编程范型脚本语言、基于原型的面向对象 形态系统 动态类型 发源地 美国
            目录
            1 组成部分
            2 基本特点
            3 日常用途
            4 历史
            5 特性
            6 编程
            7 版本
            8 比较
            组成部分
            ECMAScript,描述了该语
            javascript组成
            javascript组成
            言的语法和基本对象。 [2] 
            文档对象模型(DOM),描述处理网页内容的方法和接口。 [2] 
            浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。 [2] 
            基本特点
            JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。 [3] 
            是一种解释性脚本语言(代码不进行预编译)。 [4] 
            主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。 [4] 
            可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。 [4] 
            跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
            Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。 [5] 
            日常用途
            嵌入动态文本于HTML页面。 [4] 
            对浏览器事件做出响应。 [4] 
            读写HTML元素。 [4] 
            在数据被提交到服务器之前验证数据。 [4] 
            检测访客的浏览器信息。 [4] 
            控制cookies,包括创建和修改等。 [4] 
            基于Node.js技术进行服务器端编程。 [6] 
            历史
            它最初由Netscape的Brendan Eich设计。JavaScript是甲骨文公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。 [7] 
            Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。 [8] 
            发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。
            特性
            JavaScript脚本语言具有以下特点:
            (1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
            (2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
            (3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
            (4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。
            (5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。 [3] 
            不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。
            而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如Node.js的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。
            编程
            JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            console.log("a");//这是正确的
             console.log("b");//这是正确的
             console.logg("c");//这是错误的,并且到这里会停下来
             console.log("d");//这是正确的
             console.log("e");//这是正确的
             /*解决办法*/
             try{console.log("a");}catch(e){}//这是正确的
             try{console.log("b");}catch(e){}//这是正确的
             try{console.logg("c");}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
             try{console.log("d");}catch(e){}//这是正确的
             try{console.log("e");}catch(e){}//这是正确的
            Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。
            版本
            JavaScript已经被Netscape公司提交给ECMA制定为标准,称之为ECMAScript,标准编号ECMA-262。目前最新版为ECMA-262 5th Edition。符合ECMA-262 3rd Edition标准的实现有:
            Microsoft公司的JScript.
            Mozilla的JavaScript-C(C语言实现),现名SpiderMonkey
            Mozilla的Rhino(Java实现)
            Digital Mars公司的DMDScript
            Google公司的V8
            WebKit
            版本  发布日期    基于  Netscape Navigator  Mozilla Firefox Internet Explorer   Opera   Safari  Google Chrome
            1.0 1996年3月     2.0                  
            1.1 1996年8月     3.0     3.0          
            1.2 1997年6月     4.0-4.05                     
            1.3 1998年10月    ECMA-262 1 edition / ECMA-262 2 edition 4.06-4.7x       4.0          
            1.4         Netscape
              Server                     
            1.5 2000年11月    ECMA-262 3 edition  6.0 1.0 5.5 (JScript 5.5),
              6 (JScript 5.6),
              7 (JScript 5.7),
              8 (JScript 6) 6.0,
              7.0,
              8.0,
              9.0        
            1.6 2005年11月    1.5 + Array extras + Array and String generics + E4X        1.5         3.0, 3.1     
            1.7 2006年10月    1.6 + Pythonic generators + Iterators + let     2.0         3.2, 4.0    1.0
            1.8 2008年6月 1.7 + Generator expressions + Expression closures       3.0     11.50        
            1.8.1       1.8 + Native JSON support + Minor Updates       3.5              
            1.8.2   2009年6月22日  1.8.1 + Minor updates       3.6              
            1.8.5   2010年7月27日  1.8.1 + ECMAScript 5 Compliance     4   9   11.60        
            比较
            版本  说明  实现
            ECMA v1 标准化了JavaScript1.1的基本特性,并添加了一些新特性。没有标准化switch语句和正则表达式。   由Netscape 4.5和IE 4实现。
            ECMA v2 ECMA v1的维护版本,只添加了说明 由Netscape 4.5和IE 4实现。
            ECMA v3 标准化了switch语句、异常处理和正则表达式。    由Mozilla、Netscape 6和IE 5.5实现。
            解读词条背后的知识
            雷锋网 读懂智能与未来
             JavaScript 也可以搞定嵌入式开发?
            Ruff CTO 郑晔 IoT(Internet of Things)是大家公认的未来。但让人尴尬的是,这些代表未来的炫酷产品似乎只存在于业内人士的 PPT 中。真正走进普通人生活的,大多只是一些“带有 Wi-Fi 的普通硬件”。 和大多数生态普及过程中遇到的问题相...
            2017-01-1258
            RednaxelaFX 对编程语言的设计与实现有浓厚兴趣。
             JavaScript的功能是不是都是靠C或者C++这种编译语言提供的?
            感觉JavaScript的运行环境都是编译语言写出来的,那么对于一些与操作系统或者复杂运算等功能,是不是都是靠编译语言完成,然后由JavaScript调用这种方式实现的?那JIT技术在编译成机器码后,编译后的机器码能否脱离解释器独自运行呢?
            2016-11-09259
            WEB技术
            HTML    
            XHTML ▪ HTML 5 ▪ CSS ▪ TCP/IP
            XML 
            XML ▪ XSL ▪ XSLT ▪ XSL-FO ▪ XPath ▪ XPointer ▪ XLink ▪ DTD ▪ XML Schema ▪ DOM ▪ XForms ▪ SOAP ▪ WSDL ▪ RDF ▪ RSS ▪ WAP ▪ Web Services
            Web脚本   
            JavaScript ▪ HTML DOM ▪ DHTML ▪ VBScript ▪ AJAX ▪ jQuery ▪ JSON ▪ E4X ▪ WMLScript
            Serv脚本  
            SQL ▪ ASP ▪ ADO ▪ PHP
            .NET    
            Microsoft.NET ▪ .NET Mobile
            多媒体 
            SMIL ▪ SVG
            网页技术与标准
            文档呈现语言  
            ▪ HTML  ▪ XHTML ▪ XML   ▪ XForms
            ▪ DHTML         
            样式格式描述语言    
            ▪ 层叠样式表 ▪ XSL       
            动态网页技术  
            ▪ CGI   ▪ FastCGI   ▪ ASP   ▪ ASP.NET
            ▪ ColdFusion    ▪ JSP   ▪ PHP   
            客户端交互技术 
            ▪ ActiveX   ▪ Java Applet   ▪ JavaFX    ▪ AJAX
            ▪ Silverlight   ▪ ActionScript  ▪ Flex  ▪ AIR
            客户端脚本语言 
            ▪ JavaScript    ▪ JScript   ▪ VBScript  ▪ ECMAScript
            标识定位语言  
            ▪ URL   ▪ URI   ▪ XPath ▪ URL重写
            文档纲要语言  
            ▪ DTD   ▪ XML Schema        
            参考资料
            1.  Mozilla任命JavaScript发明人Brendan Eich为新任CEO  .CSDN[引用日期2014-07-29]
            2.  JS学习之三(JavaScript组成部分【学识补充】)  .希赛网[引用日期2014-07-29]
            3.  徐青. JavaScript恶意代码检测技术研究[D]. 西南交通大学 2014
            4.  JavaScript  .红黑联盟[引用日期2014-07-29]
            5.  JavaScript基础教程  .百度文库.2012-08-02[引用日期2015-03-04]
            6.  基于对象的js语言  .豆丁网[引用日期2014-11-28]
            7.  javascript  .JquerySchool[引用日期2014-07-29]
            8.  JavaScript入门必读  .天极网[引用日期2014-07-29]
            词条标签:
            科学百科信息科学分类 , 中国电子学会 , 通信技术
            javascript图册
             解读词条背后的知识
            RednaxelaFX 对编程语言的设计与实现有浓厚兴趣。
              JavaScript的功能是不是都是靠C或者C++这种编译语言提供的?
            感觉JavaScript的运行环境都是编译语言写出来的,那么对于一些与操作系统或者复杂运算等功能,是不是都是靠编译语言完成,然后由JavaScript调用这种方式实现的?那JIT技术在编译成机器码后,编译后的机器码能否脱离解释器独自运行呢?
            V百科往期回顾
            权威合作编辑
            权威编辑
            “科普中国”科学百科词条编写与应用工作项目
            “科普中国”是为我国科普信息化建设塑造的全...
            什么是权威编辑 查看编辑版本
            资源提供
            资源合作
            中国电子学会
            中国电子学会(Chinese Instit...
            提资源类型:内容
             什么是资源合作
            词条统计
            浏览次数:5134164次
            编辑次数:263次历史版本
            最近更新:w_ou(2018-06-06)
            1 组成部分
            2 基本特点
            3 日常用途
            4 历史
            5 特性
            6 编程
            7 版本
            8 比较
            猜你关注
            javascript教程学javascript外星人笔记本售后网点戴尔外星人台式机价格下载沥青行情软件飞跃美容美发管理软件装个电脑系统多少钱伦敦黄金模拟交易软件友声电子秤软件下载学java怎么样
            新手上路
            成长任务编辑入门编辑规则本人编辑new
            我有疑问
            内容质疑在线客服官方贴吧意见反馈
            投诉建议
            举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封
            ©2019 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 
            京公网安备11000002000001号
            javascript
            进入词条
            编辑收藏赞登录
            分享
            <div class="start">自动阅读</div>
            <div class="stop">暂停</div>
        <script type="text/javascript">
            var start = document.getElementsByTagName("div")[0];
            var stop = document.getElementsByTagName("div")[1];
            var timer = 0;
            start.onclick = function () {
                timer = setInterval(function () {
                    window.scrollBy(0,10);
                },100)
            }
            stop.onclick = function () {
                clearInterval(timer);
            }
        </script>
    </body>
</html>

这个程序是有一个bug的,当你多次点击”自动阅读的时候”,速度越来越快,当你再点击“暂停”,你会发现,暂停不了了!这是因为,当你对此点击”自动阅读”的时候,生成了多个setInterval(),而且每个setInterval()的返回值都是不同的,及tiner也是不同的,所以,你再clearInterval(timer);就没有用了。

改正:不管我点击多少次”自动阅读”,滚动的速度都不会变。—加锁式的编程思维

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>abraham</title>
    </head>
    <style>
        .stop,
        .start{
            width: 100px;
            height: 100px;
            font-size: 20px;
            font-weight: bolder;
            color: red;
            text-align: center;
            line-height: 100px;
            border-radius: 50%;
            opacity: 0.5;
        }
        .start{
            background-color: orange;
            position: fixed;
            bottom: 200px;
            right: 50px;
        }
        .stop{
            background-color: green;
            position: fixed;
            bottom: 100px;
            right: 50px;
        }
    </style>
    <body>
            百度首页 登录 注册 网页 新闻 贴吧 知道 音乐 图片 视频 地图 文库 百科
  javascript
            进入词条全站搜索帮助
            声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。详情>>
            首页
            历史上的今天
            百科冷知识
            图解百科
            分类
            艺术科学自然文化地理生活社会人物经济体育历史
            秒懂百科
            秒懂少儿APP
            秒懂星课堂
            秒懂大师说
            秒懂看瓦特
            秒懂五千年
            秒懂全视界
            特色百科
            数字博物馆
            非遗百科
            百度数说
            城市百科
            恐龙百科
            多肉百科
            用户
            蝌蚪团
            燃梦计划
            百科任务
            百科商城
            权威合作
            合作模式
            常见问题
            联系方式
            个人中心
            收藏 5365
            581
            javascript 锁定
            本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。
            JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
            在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。 [1] 
            为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。
            外文名 JavaScript 发行时间 1992年 设计者Brendan Eich 实现者Netscape、Mozilla基金会 编程范型脚本语言、基于原型的面向对象 形态系统 动态类型 发源地 美国
            目录
            1 组成部分
            2 基本特点
            3 日常用途
            4 历史
            5 特性
            6 编程
            7 版本
            8 比较
            组成部分
            ECMAScript,描述了该语
            javascript组成
            javascript组成
            言的语法和基本对象。 [2] 
            文档对象模型(DOM),描述处理网页内容的方法和接口。 [2] 
            浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。 [2] 
            基本特点
            JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。 [3] 
            是一种解释性脚本语言(代码不进行预编译)。 [4] 
            主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。 [4] 
            可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。 [4] 
            跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。
            Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。 [5] 
            日常用途
            嵌入动态文本于HTML页面。 [4] 
            对浏览器事件做出响应。 [4] 
            读写HTML元素。 [4] 
            在数据被提交到服务器之前验证数据。 [4] 
            检测访客的浏览器信息。 [4] 
            控制cookies,包括创建和修改等。 [4] 
            基于Node.js技术进行服务器端编程。 [6] 
            历史
            它最初由Netscape的Brendan Eich设计。JavaScript是甲骨文公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。 [7] 
            Netscape在最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme。JavaScript与Java名称上的近似,是当时Netscape为了营销考虑与Sun微系统达成协议的结果。为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。 [8] 
            发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA(欧洲计算机制造商协会)的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。
            特性
            JavaScript脚本语言具有以下特点:
            (1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
            (2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
            (3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
            (4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。
            (5)跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支 持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。 [3] 
            不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。
            而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如Node.js的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。
            编程
            JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            console.log("a");//这是正确的
             console.log("b");//这是正确的
             console.logg("c");//这是错误的,并且到这里会停下来
             console.log("d");//这是正确的
             console.log("e");//这是正确的
             /*解决办法*/
             try{console.log("a");}catch(e){}//这是正确的
             try{console.log("b");}catch(e){}//这是正确的
             try{console.logg("c");}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过
             try{console.log("d");}catch(e){}//这是正确的
             try{console.log("e");}catch(e){}//这是正确的
            Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。
            版本
            JavaScript已经被Netscape公司提交给ECMA制定为标准,称之为ECMAScript,标准编号ECMA-262。目前最新版为ECMA-262 5th Edition。符合ECMA-262 3rd Edition标准的实现有:
            Microsoft公司的JScript.
            Mozilla的JavaScript-C(C语言实现),现名SpiderMonkey
            Mozilla的Rhino(Java实现)
            Digital Mars公司的DMDScript
            Google公司的V8
            WebKit
            版本  发布日期    基于  Netscape Navigator  Mozilla Firefox Internet Explorer   Opera   Safari  Google Chrome
            1.0 1996年3月     2.0                  
            1.1 1996年8月     3.0     3.0          
            1.2 1997年6月     4.0-4.05                     
            1.3 1998年10月    ECMA-262 1 edition / ECMA-262 2 edition 4.06-4.7x       4.0          
            1.4         Netscape
              Server                     
            1.5 2000年11月    ECMA-262 3 edition  6.0 1.0 5.5 (JScript 5.5),
              6 (JScript 5.6),
              7 (JScript 5.7),
              8 (JScript 6) 6.0,
              7.0,
              8.0,
              9.0        
            1.6 2005年11月    1.5 + Array extras + Array and String generics + E4X        1.5         3.0, 3.1     
            1.7 2006年10月    1.6 + Pythonic generators + Iterators + let     2.0         3.2, 4.0    1.0
            1.8 2008年6月 1.7 + Generator expressions + Expression closures       3.0     11.50        
            1.8.1       1.8 + Native JSON support + Minor Updates       3.5              
            1.8.2   2009年6月22日  1.8.1 + Minor updates       3.6              
            1.8.5   2010年7月27日  1.8.1 + ECMAScript 5 Compliance     4   9   11.60        
            比较
            版本  说明  实现
            ECMA v1 标准化了JavaScript1.1的基本特性,并添加了一些新特性。没有标准化switch语句和正则表达式。   由Netscape 4.5和IE 4实现。
            ECMA v2 ECMA v1的维护版本,只添加了说明 由Netscape 4.5和IE 4实现。
            ECMA v3 标准化了switch语句、异常处理和正则表达式。    由Mozilla、Netscape 6和IE 5.5实现。
            解读词条背后的知识
            雷锋网 读懂智能与未来
             JavaScript 也可以搞定嵌入式开发?
            Ruff CTO 郑晔 IoT(Internet of Things)是大家公认的未来。但让人尴尬的是,这些代表未来的炫酷产品似乎只存在于业内人士的 PPT 中。真正走进普通人生活的,大多只是一些“带有 Wi-Fi 的普通硬件”。 和大多数生态普及过程中遇到的问题相...
            2017-01-1258
            RednaxelaFX 对编程语言的设计与实现有浓厚兴趣。
             JavaScript的功能是不是都是靠C或者C++这种编译语言提供的?
            感觉JavaScript的运行环境都是编译语言写出来的,那么对于一些与操作系统或者复杂运算等功能,是不是都是靠编译语言完成,然后由JavaScript调用这种方式实现的?那JIT技术在编译成机器码后,编译后的机器码能否脱离解释器独自运行呢?
            2016-11-09259
            WEB技术
            HTML    
            XHTML ▪ HTML 5 ▪ CSS ▪ TCP/IP
            XML 
            XML ▪ XSL ▪ XSLT ▪ XSL-FO ▪ XPath ▪ XPointer ▪ XLink ▪ DTD ▪ XML Schema ▪ DOM ▪ XForms ▪ SOAP ▪ WSDL ▪ RDF ▪ RSS ▪ WAP ▪ Web Services
            Web脚本   
            JavaScript ▪ HTML DOM ▪ DHTML ▪ VBScript ▪ AJAX ▪ jQuery ▪ JSON ▪ E4X ▪ WMLScript
            Serv脚本  
            SQL ▪ ASP ▪ ADO ▪ PHP
            .NET    
            Microsoft.NET ▪ .NET Mobile
            多媒体 
            SMIL ▪ SVG
            网页技术与标准
            文档呈现语言  
            ▪ HTML  ▪ XHTML ▪ XML   ▪ XForms
            ▪ DHTML         
            样式格式描述语言    
            ▪ 层叠样式表 ▪ XSL       
            动态网页技术  
            ▪ CGI   ▪ FastCGI   ▪ ASP   ▪ ASP.NET
            ▪ ColdFusion    ▪ JSP   ▪ PHP   
            客户端交互技术 
            ▪ ActiveX   ▪ Java Applet   ▪ JavaFX    ▪ AJAX
            ▪ Silverlight   ▪ ActionScript  ▪ Flex  ▪ AIR
            客户端脚本语言 
            ▪ JavaScript    ▪ JScript   ▪ VBScript  ▪ ECMAScript
            标识定位语言  
            ▪ URL   ▪ URI   ▪ XPath ▪ URL重写
            文档纲要语言  
            ▪ DTD   ▪ XML Schema        
            参考资料
            1.  Mozilla任命JavaScript发明人Brendan Eich为新任CEO  .CSDN[引用日期2014-07-29]
            2.  JS学习之三(JavaScript组成部分【学识补充】)  .希赛网[引用日期2014-07-29]
            3.  徐青. JavaScript恶意代码检测技术研究[D]. 西南交通大学 2014
            4.  JavaScript  .红黑联盟[引用日期2014-07-29]
            5.  JavaScript基础教程  .百度文库.2012-08-02[引用日期2015-03-04]
            6.  基于对象的js语言  .豆丁网[引用日期2014-11-28]
            7.  javascript  .JquerySchool[引用日期2014-07-29]
            8.  JavaScript入门必读  .天极网[引用日期2014-07-29]
            词条标签:
            科学百科信息科学分类 , 中国电子学会 , 通信技术
            javascript图册
             解读词条背后的知识
            RednaxelaFX 对编程语言的设计与实现有浓厚兴趣。
              JavaScript的功能是不是都是靠C或者C++这种编译语言提供的?
            感觉JavaScript的运行环境都是编译语言写出来的,那么对于一些与操作系统或者复杂运算等功能,是不是都是靠编译语言完成,然后由JavaScript调用这种方式实现的?那JIT技术在编译成机器码后,编译后的机器码能否脱离解释器独自运行呢?
            V百科往期回顾
            权威合作编辑
            权威编辑
            “科普中国”科学百科词条编写与应用工作项目
            “科普中国”是为我国科普信息化建设塑造的全...
            什么是权威编辑 查看编辑版本
            资源提供
            资源合作
            中国电子学会
            中国电子学会(Chinese Instit...
            提资源类型:内容
             什么是资源合作
            词条统计
            浏览次数:5134164次
            编辑次数:263次历史版本
            最近更新:w_ou(2018-06-06)
            1 组成部分
            2 基本特点
            3 日常用途
            4 历史
            5 特性
            6 编程
            7 版本
            8 比较
            猜你关注
            javascript教程学javascript外星人笔记本售后网点戴尔外星人台式机价格下载沥青行情软件飞跃美容美发管理软件装个电脑系统多少钱伦敦黄金模拟交易软件友声电子秤软件下载学java怎么样
            新手上路
            成长任务编辑入门编辑规则本人编辑new
            我有疑问
            内容质疑在线客服官方贴吧意见反馈
            投诉建议
            举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封
            ©2019 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 
            京公网安备11000002000001号
            javascript
            进入词条
            编辑收藏赞登录
            分享
            <div class="start">自动阅读</div>
            <div class="stop">暂停</div>
        <script type="text/javascript">
            var start = document.getElementsByTagName("div")[0];
            var stop = document.getElementsByTagName("div")[1];
            var timer = 0;
            var key = true;
            start.onclick = function () {
                if(key) {
                    timer = setInterval(function () {
                        window.scrollBy(0,10);
                    },100);
                    key = false;
                }
            }
            stop.onclick = function () {
                clearInterval(timer);
                key = true;
            }
        </script>
    </body>
</html>

猜你喜欢

转载自blog.csdn.net/hdq1745/article/details/88080622