欢迎访问趣闻百科网!
首页 >科技 >javascript
javascript

javascript

(直译式脚本语言)
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。
javascript资料
  • 中文名:爪哇脚本
  • 别名:JS
  • 外文名:javascript
  • 所属组织:NetscapeMozilla基金会
  • 脚本语言简介

    javascript

    javascript是一种基于对象(Object)和事件驱动(Event Driven),并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互的作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。

    javascript的出现,它可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交互式的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息,并对客户操作进行反应的Web页面的取代。javascript脚本正是满足这种需求而产生的语言。它深受广泛用户的喜爱和欢迎。它是众多脚本语言中较为优秀的一种,它与WWW的结合有效地实现了网络计算和网络计算机的蓝图。无疑Java家族将占领Internet网络的主导地位。因此,尽快掌握javascript脚本语言编程方法是我国广大用户日益关心的问题。

    脚本语言作者

    布兰登·艾奇(Brendan Eich,1964年~),JavaScript的发明人,从2007年开始在Mozilla公司担任首席技术长官(Chief Technology Officer)。2014年3月25日据国外媒体消息,Mozilla宣布由原技术长兼联合创始人Brendan Eich接任新执行官职位,同时现任执行官Gary Kovacs将正式退位。

    发展历史

    大概在1998年,一家称作Nombas的公司开始开发一种叫做C减减(C-minus-minus,简称Cmm)的嵌入式脚本语言。这个脚本语言捆绑在一个叫做CEnvi的共享软件产品中,当Netscape Navigator崭露头角时,Nombas开发了一个可以嵌入网页中的CEnvi的版本。这些早期的试验称为EspressoPage(浓咖啡般的页面),它们代表了第一个在万维网上使用的客户端脚本语言。而Nombas丝毫没有料到它的理念将会成为因特网的一块重要基石。

    它最初由Netscape的Brendan Eich设计。JavaScript是甲骨文公司的注册商标。Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,浏览器对象模型。

    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具有非常丰富的特性。

    发展初期,JavaScript的标准并未确定,同期有Netscape的JavaScript,微软的JScript和CEnvi的ScriptEase三足鼎立。1997年,在ECMA欧洲计算机制造商协会的协调下,由Netscape、Sun、微软、Borland组成的工作组确定统一标准:ECMA-262。

    脚本语言组成

    一个完整的 JavaScript 实现是由以下3个不同部分组成的:

    ECMAScript,描述了该语javascript组成 言的语法和基本对象。

    文档对象模型(DOM),描述处理网页内容的方法和接口。

    浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。

    脚本语言概念

    语句

    JavaScript程序是由若干语句组成的,语句是编写程序的指令。JavaScript提供了完整的基本编程语句,它们是:

    赋值语句、switch选择语句、while循环语句、for循环语句、for each循环语句、do...while循环语句、break循环中止语句、continue循环中断语句、with语句、try…catch语句、if语句(if..else,if…else if…)。

    函数

    函数是命名的语句段,这个语句段可以被当作一个整体来引用和执行。使用函数要注意以下几点:

    1)函数由关键字function定义(也可由Function构造函数构造)。

    2)使用function关键字定义的函数在一个作用域内是可以在任意处调用的(包括定义函数的语句前);而用var关键字定义的必须定义后才能被调用。

    3)函数名是调用函数时引用的名称,区分大小写,调用函数时不可写错函数名。

    4)参数表示传递给函数使用或操作的值,它可以是常量,也可以是变量,也可以是函数,在函数内部可以通过arguments对象(arguments对象是一个伪数组,属性callee引用被调用的函数)访问所有参数。

    5)return语句用于返回表达式的值。

    6)yield语句扔出一个表达式,并且中断函数执行直到下一次调用next。

    一般的函数都是以下格式:

    1functionmyFunction(params){

    2//执行的语句

    3}

    函数表达式

    var myFunction=function(params){

    //执行的语句

    }

    var myFunction=function(){

    //执行的语句

    }

    my Function();//调用函数

    匿名函数,它常作为参数在其他函数间传递:

    1window.addEventListener('load',function(){

    2//执行的语句

    3},false;

    对象

    JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。

    一组包含数据的属性和对属性中包含数据进行操作的方法,称为对象。比如要设定网页的背景颜色,所针对的对象就是document,所用的属性名是bgcolor,如document.bgcolor=blue,就是表示使背景的颜色为蓝色。

    内置对象

    JavaScript字符串String对象

    字符串是JavaScript的一种基本的数据类型。需要注意的是,JavaScript 的字符串不可变(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase()这样的方法,返回的是全新的字符串,而不是修改原始字符串。

    String对象的 length 属性声明了该字符串中的字符数。

    String类定义了大量操作字符串的方法,一般分为这样几类:查找子字符串、截取,分割和拼接字符串、匹配正则表达式、改变字符串样式等。

    JavaScriptDate日期对象

    Date对象用于处理日期和时间,Date 对象会自动把当前日期和时间保存为其初始值。

    Date对象的大部分方法是以下几类:

    getXXX:获取 年、月、日、时、分、秒、等等。

    setXXX:设置 年、月、日、时、分、秒、等等。

    toXXXString:转成一定格式的字符串。

    JavaScriptArray数组对象

    数组对象的作用是:使用单独的变量名来存储一系列的值。

    数组的常用属性是:length,代表了这个数组中元素的个数。

    数组的常用方法分这么几类:排序、添加和删除元素、拼接另一个数组、转成字符串。其中添加元素和移除元素的几个方法还有模拟堆栈或队列这些数据结构的作用。

    JavaScriptBoolean逻辑对象

    Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false)。

    在 JavaScript中,布尔值是一种基本的数据类型。Boolean对象是一个将布尔值打包的布尔对象。Boolean对象主要用于提供将布尔值转换成字符串的toString()方法。当调用toString()方法将布尔值转换成字符串时(通常是由JavaScript 隐式地调用),JavaScript 会内在地将这个布尔值转换成一个临时的 Boolean 对象,然后调用这个对象的 toString()方法。

    JavaScriptMath(算数)对象

    Math(算数)对象的作用是:执行常见的算数任务。

    Math对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。(相当于静态类和静态方法)

    Math对象的常用属性都是数学相关的常量属性,如圆周率π、2的平方根,算数常量e(自然对数的底数,约等于2.718)。

    Math对象中最常用的方法有这样一些:向上(向下)取整、四舍五入取整、随机数、返回2个数中的大数或小数。

    JavaScriptRegExp 对象

    什么是 RegExp?

    RegExp是正则表达式的缩写。当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。您可以规定字符串中的检索位置,以及要检索的字符类型,等等。

    这个知识点,相对还是比较繁杂的,想熟练掌握是需要花费一些功夫的,具体请看 JS 手册。

    JavaScriptGlobal对象

    这是一个固有对象,目的是把所有全局方法集中在一个对象中。Global 对象不能用 new 运算符创建。它在 Scripting 引擎被初始化时创建,并立即使其方法和属性可用。

    属性:Infinity 属性|NaN属性

    方法:escape方法|eval方法|isFinite方法|isNaN方法|parseFloat方法|parseInt方法|unescape方法

    事件

    用户与网页交互时产生的操作,称为事件。事件可以由用户引发,也可能是页面发生改变,甚至还有你看不见的事件(如Ajax的交互进度改变)。绝大部分事件都由用户的动作所引发,如:用户按鼠标的按键,就产生click事件,若鼠标的指针在链接上移动,就产生mouseover事件等等。在JavaScript中,事件往往与事件处理程序配套使用。

    而对事件的处理,W3C的方法是用addEventListener函数,它有三个参数:事件,引发的函数,是否使用事件捕捉。为了安全性,建议将第三个参数始终设置为false

    传统的方法就是定义元素的on…事件,它就是W3C的方法中的事件参数前加一个“on”。而IE的事件模型使用attachEvent和dettachEvent对事件进行绑定和删除。JavaScript中事件还分捕获和冒泡两个阶段,但是传统绑定只支持冒泡事件。

    常用类型

    Object:对象

    Array:数组

    Number:数

    Boolean:布尔值,只有true和false两个值,是所有类型中占用内存最少的

    null:一个空值,唯一的值是null,表空引用

    undefined:没有定义或赋值的变量

    NaN:非数字类型

    命名形式一般形式是:var <变量名表>;

    其中,var是javascript的保留字,表面接下来是变量说明,变量名表是用户自定义标识符,变量之间用逗号分开。和C++等程序不同,在javascript中,变量说明不需要给出变量的数据类型。此外,变量也可以不说明而直接使用。

    作用域

    变量的作用域由声明变量的位置决定,决定哪些脚本命令可访问该变量。在函数外部声明的变量称为全局变量,其值能被所在HTML文件中的任何脚本命令访问和修改。在函数内部声明的变量称为局部变量。只有当函数被执行时,变量被分配临时空间,函数结束后,变量所占据的空间被释放。局部变量只能被函数内部的语句访问,只对该函数是可见的,而在函数外部是不可见的。

    日常用途

    1、嵌入动态文本于HTML页面。

    2、对浏览器事件做出响应。

    3、读写HTML元素。

    4、在数据被提交到服务器之前验证数据。

    5、检测访客的浏览器信息。

    6、控制cookies,包括创建和修改等。

    7、基于Node js技术进行服务器端编程。

    脚本语言特性

    JavaScript脚本语言具有以下特点:

    脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。

    基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。

    简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

    动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。

    跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。

    不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。

    而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如Node.js的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。

    编程简介

    JavaScript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。直译语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而其解决办法就是于使用try{}catch(){}︰

    console.loga//这是正确的

    console.logb//这是正确的

    console.loggc//这是错误的,并且到这里会停下来

    console.logd//这是正确的

    console.loge//这是正确的

    /*解决办法*/

    try{console.loga}catch(e){}//这是正确的

    try{console.logb}catch(e){}//这是正确的

    try{console.loggc}catch(e){}//这是错误的,但是到这里不会停下来,而是跳过

    try{console.logd}catch(e){}//这是正确的

    try{console.loge}catch(e){}//这是正确的

    Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey会将解译过的指令暂存,以提高性能,称为实时编译),但由于V8的核心部份多数用Javascript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。

    运算符简介

    javascript提供了丰富的运算功能,包括算术运算、关系运算、逻辑运算和连接运算。

    1、算术运算符

    javascript中的算术运算符有单目运算符双目运算符。双目运算符包括:+(加)、-(减)、*(乘)、/(除)、%(取余)、|(按位或)、&(按位与)、<<(左移)、>>(右移)等。单目运算符有:-(取反)、~(取补)、++(递加1)--(递减1)等。

    2、关系运算符

    关系运算符又称比较运算,运算符包括:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)和!=(不等于)以及 ===) 和 !==。

    关系运算的运算结果为布尔值,如果条件成立,则结果为true,否则为false。

    3、逻辑运算符

    逻辑运算符有:&&(逻辑与)、||(逻辑或)、!(取反,逻辑非)、^(逻辑异或)。

    4.字符串连接运算符

    连接运算用于字符串操作,运算符为+(用于强制连接),将两个或多个字符串连结为一个字符串。

    5.三目操作符?

    三目操作符“?:”格式为:

    操作数?表达式1:表达式2

    三目操作符“?:”构成的表达式,其逻辑功能为:若操作数的结果为true,则表述式的结果为表达式1,否则为表达式2。例如max=(a>b)?a:b;该语句的功能就是将a,b中的较大的数赋给max。

    相关规则

    在JavaScript中,“===”是全同运算符,只有当值相等,数据类型也相等时才成立。

    等同运算符“==”的比较规则:

    当两个运算数的类型不同时:将他们转换成相同的类型。

    1、一个数字与一个字符串,字符串转换成数字之后,进行比较。

    2、true转换为1、false转换为0,进行比较。

    3、一个对象、数组、函数与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。先使用valueOf,如果不行就使用toString

    4、其他类型的组合不相等。

    想两个运算数类型相同,或转换成相同类型后:

    1、2个字符串:同一位置上的字符相等,2个字符串就相同。

    2、2个数字:2个数字相同,就相同。如果一个是NaN,或两个都是NaN,则不相同。

    3、2个都是true,或者2个都是false,则相同。

    4、2个引用的是同一个对象、函数、数组,则他们相等,如果引用的不是同一个对象、函数、数组,则不相同,即使这2个对象、函数、数组可以转换成完全相等的原始值。

    5、2个null,或者2个都是未定义的,那么他们相等。

    而“===”是全同运算符,全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false;只有当两个运算数的类型相同的时候,才遵循等同运算符的比较规则进行比较。

    例如:null==undefined 会返回真,但是null===undefined 就会返回假!

    表达式 表达式是指将常量、变量、函数、运算符和括号连接而成的式子。根据运算结果的不同表达式可分为算术表达式、字符表达式、和逻辑表达式。

    脚本语言

    javascript

    解释语言的弱点是安全性较差,而且在JavaScript中,如果一条运行不了,那么下面的语言也无法运行。而且由于每次重新加载都会重新解译,加载后,有些代码会延迟至运行时才解译,甚至会多次解译,所以速度较慢。

    与其相对应的是编译语言,例如Java。Java的源代码在传递到客户端运行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。但是它必须在服务器端进行编译,这样就拖延了时间。但因为已经封装,所以能保证安全性。

    Javascript库

    库,指得是可以方便应用到现有开发体系中的、现成的代码资源。库不仅为大部分日常的DOM脚本编程工作提供了快捷的解决方案,而且也提供了许多独特的工具。虽然库使用起来很方便,但它们也并非能解决你所有的问题。在使用库之前,一定要保证真正理解javascript的DOM原理。

    这些库一般是一个(或多个)js(Javascript的缩写)文件,只要把他们导入你的网页就能使用了。

    常用的库有:

    jQuery:javascript库中的新成员,提供css和xpath选择符查找元素、ajax、动画效果等

    JSer: 国人开发的一款全功能的开源脚本框架. 借助JSer,可以便捷的操作DOM、CSS样式访问、属性读写、事件绑定、行为切换、动态载入、数据缓存、URL与AJAX等众多功能。

    dojo:一个巨大的库,包括的东西很多,dijit和dojox是dojo的扩展,几乎你想要的各种javascript程序都包括了。

    prototype:一个非常流行的库,使用了原型链向javascript中添加了很多不错的函数

    YUI:YahooYUI库yahoo!用户界面,非常实用,提供各种解决方案。

    ExtJs:组件非常丰富,皮肤也很漂亮,动画效果也丰富。

    基本特点

    网页嵌入技术有:Javascript、VBScript、Document Object Model(DOM,文档对象模型)、Layers和Cascading Style Sheets(CSS,层叠样式表),这里主要讲Javascript。

    Javascript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。Javascript是由 Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。运行用Javascript编写的程序需要能支持Javascript语言的浏览器。Netscape公司 Navigator 3.0以上版本的浏览器都能支持Javascript程序,微软公司Internet Explorer 3.0以上版本的浏览器基本上支持Javascript。微软公司还有自己开发的Javascript,称为JScript。Javascript和Jscript基本上是相同的,只是在一些细节上有出入。 Javascript短小精悍,又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。

    JavaScript使网页增加互动性。JavaScript 使有规律地重复的HTML文段简化,减少下载时间。JavaScript 能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由CGI 验证。JavaScript 的特点是无穷无尽的,只要你有创意。

    开发工具

    javascript

    在如今网络开发方面,JavaScript起了很关键的作用;像jQuery,MooTools,Prototype等等JavaScript框架以及其它JavaScript类库让我们的生活轻松了不少。但是随着Rich Internet Applications(RIA)的面世及迅速应用,书写更强大,更坚实可靠的JavaScript的需要日益迫切。

    比较常用的开发框架处理前面提到的jQuery,MooTools,Prototype外,还有如YUI Library、DevExtreme、Bookmarklet Generator、Dojo Toolkit、Modernizr等。

    javascript程序是纯文本的,且不需要编译,所以任何纯文本的编辑器都可以编辑javascript文件。

    测试工具

    JSLint–JavaScript的验证器

    JSLint取得一个JavaScript源代码并对其扫描。如果发现问题,它送回信息描述问题状况及在源代码中的大概位置。问题不一定就出在句法上,不过常常正是这里出错。JSLint查看一些风格约定和结构问题,它证明不了程序是否正确。它只是提供了另一双眼睛来帮助发现问题。

    JsUnit

    JsUnit是一个客户端(内浏览器)JavaScript单元测试框架。它其实是JUnit给JavaScript的一个口岸。其中还有一个平台来在多个浏览器上以及运行不同操作系统的多个机器上的自动执行测试。

    YUITest

    YUITest是一个测试框架,它针对基于浏览器的JavaScript解决方案。你可以用YUI Test在JavaScript 解决方案上轻松添加单元测试。

    ObtrusiveJavaScript Checker

    可作为Firefox扩展,Greasemonkey用户脚本,以及Ubiquity命令;Obtrusive JavaScript Checker是一种可以扫过页面上所有元素的工具,发现带有行内事件的HTML元素(这是有危害性的,JavaScript应该是不张扬的)时,它给这部分加红边使其凸显。

    Crosscheck

    Crosscheck是一个开源测试框架,验证内浏览器JavaScript代码。它帮助你确保代码可以在Internet Explorer和Firefox等种种不同的浏览器上运行,而这些浏览器都不需要安装。

    JSLitmus

    JSLitmus是一个轻量级工具用来制作JavaScript的特定标准测试。

    JavaScriptMVC的测试插件

    JavaScriptMVC的测试库提供事件模拟,单元测试,Ajax夹具,和一个控制台程序

    调试工具

    Javascript调试工具包

    JavaScript调试工具包是一种跨浏览器调试JavaScript的eclipse plugin,它可以在IE,Firefox,Safari,Chrome,Opera甚至是移动浏览器上调试JavaScript。

    Firebug

    作为最受欢迎的网页开发程序工具,Firebug是Firefox的一个插件,可以用它在任何网页上现时编辑,调试和监控CSS, HTML, 和JavaScript。它提供给JavaScript登陆和调试控制台一些有用的功能如AJAX requests logging,JavaScript解释器,DOM explorer等等。Firebug Lite 可以在IE, Opera, 和Safari上使用。

    Venkman

    Venkman为基于Gecko的浏览器提供功能强大JavaScript调试环境。这个调试器以Firefox & Mozilla插件的形式使用。可以在用户界面上和控制台命令中使用断点管理,调用栈检查,变量/对象检查等功能,可以让你以最习惯的方式调试。

    NitobiBug

    NitobiBug是一种基于浏览器的JavaScript对象记录和检查工具——与Firebug作用相似。NitobiBug在可以在不同的服务器(IE6+,Safari,Opera, Firefox)上运行以提供开发各种Ajax应用程序一致且功能强大的工具。

    DamnIT

    DamnIT是一种免费服务,当用户在网页上遇到JavaScript错误时它会给你发送电子邮件。

    JSBin

    JSBin是一种在线网络应用程序,为帮助JavaScript开发者在一定情景里测试代码片段以及协作调试代码而特别设计。你可以用JS Bin在线编辑测试JavaScript和HTML代码。一旦完成,你可以将URL保存并发送给同伴来进行审查或获得帮助。

    Blackbird

    许多JavaScript开发者仅仅使用alert()来显示各种信息调试代码。Blackbird在JavaScript上提供了记录信息的简单方式以及一个引人注意的控制台程序来察看并过滤信息。

    压缩工具

    OnlineJavascript Compression Tool

    一个可以用一些压缩算法如JSMin 和Packer压缩JavaScript文件的在线JavaScript压缩器。压缩的JavaScript文件是生产环境中的理想文件,因为它们常常将文件大小减小30-90%。在很大程度上,文件尺寸的缩小是通过除去网页浏览者或访问者不需要的注释和多余的空格字符来实现的。

    Scriptalizer

    一个将多个JavaScript文件组合为一个文件的在线工具。

    DojoShrinkSafe

    一种命令行实用程序,允许你用浏览器缩小文件大小,从而缩短响应时间。Dojo压缩器不是建立在脆弱的规则表达式基础上的。它基于来自莫兹拉专案的JavaScript引擎。由于一个基于真正的parse stream,Dojo压缩器比基于规则表达式的工具可以更好体现代符(变量名等等)的环境。

    YUICompressor

    TheYUI Compressor是一种JavaScript压缩器。去除注释和空格之外,它还可以用最小可用变量名混淆局部变量。即使在使用‘eval’或‘with’之类构造(在这些情况下压缩并不合适),这种混淆也是安全的。与jsmin相比,它平均节省20%。

    文件记载

    jGrouseDoc

    jGrouseDoc可以从源代码中的注释生成API文件。用户可以用这个工具记载需要的所有构造——不仅有函数和变量,还有类文件包,界面,命名空间,包和其它。使用那种JavaScript框架是无关紧要的——用户可以不采取框架或工具强加的方式而以自己希望的方式记录代码,

    格式工具

    JavaScript代码美化工具

    这个美化工具可处理散乱或压缩的JavaScript代码,不断对其进行快速的格式化并使其可读。

    JSDocToolkit

    JavaScript的一种文件产生器,以JavaScript形式写成;它自动从加注的JavaScript源代码中生成格式模版化,多页面HTML(或标准通用标记语言下的一个子集XML、JSON、抑或其它文本)。

    浏览器扩展

    Firefox,Flock & Seamonkey的网络开发人员扩展

    网络开发人员拓展在浏览器中增加了一个菜单和工具条,其中包含许多网络开发工具包括能使你的XHTML生效,发现JavaScript/CSS的错误,网页结构可视化,测试网络表单,改变运行中的XHTML,检查HTTP头信息等等。

    OperaDragonfly

    OperaDragonfly 是Opera浏览器的跨设备,跨平台调试环境—调试JavaScript, 检查编辑CSS和DOM,并且查看移动设备或计算机上的错误。

    开发工具条

    微软的英特网浏览器开发者工具条为网页的快速创建,理解和故障诊断提供了各种的工具。

    其它相应工具

    Google的AJAX APIs Playground

    AJAXAPI Playground装载有Google JavaScript APIs(Maps,Search,Feeds,Calendar,Visualization,Language,Blogger,Libraries和Earth,等等)例子,你可以编辑运行这些例子帮助你探究Google的APIs可提供的功能。同时也还有保存和输出功能。你可以用保存功能保持编辑的例子以留待以后使用。而输出功能可用来修改例子并把代码公布在一个永久的URL上。

    QuirksMode–相容性表

    检查CSS2CSS3、DOM Core、DOM HTML、DOM CSS、DOM Events和CSS Object Model View主要浏览器相容性状态的最受欢迎的出处。

    转换工具

    HTML到JavaScript转换器获得置标并将它转换成一系列可以在JavaScript块中使用的document.write()申明。

    Glimmer

    Glimmer是一种桌面应用软件,可以用它利用jQuery库的作用在网页上轻松制作交互式元素。可以用它轻松制作交错感受如旋转相册/报头,下拉导航,悬停效果,或自定义动画。

    jQueryFunction Builder

    你可以用这个工具很快建立一个函数集,当页面加载完毕/准备完毕时,调用该函数集。

    JavaScriptRegex Generator

    一个制作正则表达式的在线工具。

    HTTP监控

    Fiddler

    Fiddler是一种Web调试代理,它记录你的电脑和网络之间所有的HTTP(S)流量。可以用Fiddler检查所有HTTP(S)流量,设置断点,干涉进来或出去的数据。

    TamperData

    TamperData是一个追踪并修改http/https请求的Firefox扩展。可以用它做基于网络的应用程序的安全测试,追踪请求/回应。

    LiveHTTP Headers

    可以在浏览的时候查看网页的HTTP headers。可以用Live HTTP Headers调试网页应用程序,找出远端网站使用的是那种网站服务器,或者查看远端网站发送的小数据文件。

    开发环境

    AptanaStudio

    AptanaStudio是一个完整的网络开发环境。它提供有JavaScript代码自动完成和调试,HTML/CSS/JavaScript代码提示,以及对重要的Ajax类库的支持。Aptana Studio甚至给你页面上所有的,包括你自己的JavaScript提供代码提示。

    KomodoEdit

    KomodoEdit是一种免费开放的源编辑程序。它提供自动完成,调用提示,多种语言支持,语法高亮颜色显示,语法检查,Vi emulation,Emacs快捷键绑定等等功能。

    基本特点

    JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

    1、是一种解释性脚本语言(代码不进行预编译)。

    2、主要用来向HTML(标准通用标记语言下的一个应用)页面添加交互行为。

    3、可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离。

    4、跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如Windows、Linux、Mac、Android、iOS等)。

    Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。而变量提供存放信息的地方,表达式则可以完成较复杂的信息处理。

    版本介绍

    JavaScript已经被Netscape公司提交给ECMA制定为标准,称之为ECMAScript,标准编号ECMA-262。目前最新版为ECMA-262 5th Edition。符合ECMA-262 3rd Edition标准的实现有:

    1、Microsoft公司的JScript[1].

    2、Mozilla的JavaScript-C(C语言实现),现名SpiderMonkey

    3、Mozilla的Rhino(Java实现)

    4、Digital Mars公司的DMDScript

    5、Google公司的V8

    6、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

    展开表格

    比较

    版本

    说明

    实现

    ECMA v1

    标准化了JavaScript1.1的基本特性,并添加了一些新特性。没有标准化switch语句和正则表达式。

    由Netscape 4.5和IE 4实现。

    ECMA v2

    ECMA v1的维护版本,只添加了说明

    由Netscape 4.5和IE 4实现。

    ECMA v3

    标准化了switch语句、异常处理和正则表达式。

    由Mozilla、Netscape 6IE 5.5实现。

    参考资料

    [1] JavaScript[引用日期2016-08-03]

    相关视频

    全部

    529次播放01:22

    javascript——基于原型的直译式脚本语言

  • 上一篇百科:状态转移方程
  • 下一篇百科:脉冲光
  • 免责声明:本站部分内容来自于网络或者相关专家观点,本站发表仅供学习参考,如有侵权请联系删除邮箱:lujiutang84414@126.com。