JS VS JAVA

JavaScript Java
JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载。编写HTML文档就像编辑文本文件一样方便。 Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中。
JavaScript使用<Script>...</Script>来标识 Java使用<applet>...</applet>来标识。
   
JavaScript是基于对象(object-based)的语言。而基于对象的基本特征,就是采用事件驱动(event-driven)。它是在用形界面的环境下,使得一切输入变化简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件进行处理程序或函数,我们称之为事件处理程序(Event Handler)。 这与Java不同,Java是面向对象的语言。

Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。

JavaScript是种脚本语言,它可以用来制作与网络无关的,与用户交互作用的复杂软件。它是一种基于对象(Object Based)和事件驱动(Event Driver)的编程语言。因而它本身提供了非常丰富的内部对象供设计人员使用。

Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。

JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行。

JavaScript提供脚本语言的编程与C++非常相似,它只是去掉了C语言中有关指针等容易产生的错误,并提供了功能强大的类库。对于已经具备C++或C语言的人来说,学习JavaScript脚本语言是一件非常轻松愉快的事。

JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。

建立对象和利用对象属性和方法不一样,JS的对象不是可见的对象(内建对象可以这样理解,当然对于DOM,HTML的每一个元素都是可见的),而是使用new关键字去实例化,去引用属性,然后再用定义的方法,如get---(),set---()等方法去操作;

虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写功能强大的Web文档。

MIME,Multipurpose Internet Mail Extensions多功能因特网邮件扩展,原为是用来判断电子邮件附件的格式而设计的一个字符串,所来演变为网络文档及企业网和Internet上的其他应用程序中的文件格式的规范。MIME类型由一个媒体类型和一个子类型组成,中间/分开,如text/css,它会告诉浏览器这个文件是纯文本文件中的一个CSS样式表。

概念

脚本程序分为客户端脚本和服务器端脚本两种,客户端脚本是由浏览器(一般有多种版本)来解释执行的,服务器端脚本是由web服务器负责解释执行的,脚本是一种能够完成某些特殊功能的小程序段;

Javascrip是Netscape推出的一种嵌入HTML文档的,基于对象的脚本描述语言;

JS是通过自身内建的对象和DOM对象模型所提供的对象和事件,对网页内容进行控制、对用户操作进行响应,从而实现网页的动态交互效果的;

在引入对象的编程方法中,通过定义对象,将一定的属性和方法赋予一个对象,属性对应于对象中的变量,方法则定义了对象自己的函数;在程序设计中,将对象实例化,在不同的地方对其引用,从而简化程序设计。对象的实例化,就是将对象的属性和方法的具体化。

document.getElementById("tab")[i];

程序开发语言的设计理念,一方面会考虑开发过程是否轻松,另外一方面会考虑到程序执行时的效率,一般来说,这两方面很难同时保持最佳,需要有一个权衡。就JS来说,之所以被设计成解释型的动态语言,更多的是考虑到了前者。

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

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

除了JS,能够实现客户端程序功能的技术还有Adobe Flash和Silverlight.不过他们只能在特定的环境中运行。

 

用途:

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

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

3.读写HTML元素。

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

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

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

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

注释

<!-- //-->:当不支持javascript的浏览器遇到时,JS代码作为注释文本,而不进行解释说明;

JS注释:/*-----*/

CSS注释:/*-----*/

Html注释:<--! -->

Js代码编写基础:

1 区分大小写,HTML不区分;

2 忽略空白符和换行符;

3 用分号分割语句;

Js可以包含任意多对不重叠的<script>和</script>标签对。但却是同一个Javascript的组成部分,在一个脚本中特定的函数和变量适用于随后出现的同一文件中的所有脚本;

JavaScript基础

JS与浏览器的关系:JS以浏览器为运行环境,代码由浏览器解释执行;另外浏览器所提供的DOM方式也是有区别的.

浏览器是JS代码的解释器,所以不同的浏览器对一些JS的命令的支持是不一样;

数据和施加在数据上的操作:

标识符(变量名和函数名),不能以数字开头,区分大小写。

变量及变量的赋值;

数据类型转换:string() and Number();

JS是弱类型语言,数据类型可以隐式或显式地转换。

数据类型判断

instanceof,用于类型判断,其结果为布尔值;

typeof,用于类型判断,其结果为字符串。

在JavaScript中,数值的内部结构为64位的浮点小数。

undefined,null,"",0---false;

JS的条件表达式:<条件>?A:B,若条件成立,则表达式的值为A,若条件不成立,则表达式的值为B;

在编程中,字符串和数值总是被大量地生成和处理。(字符串对象、number对象、math对象)

 

DOM模型将HTML视为一种结构化的数据并将一个HTML文档解析为一棵具有层次结构的树,我们可以在文档结构树中导航、查看每一个分支或树叶。

不那么严格地说,专门为某种操作而设计出一种功能的方式可以称作抽象化。

JS内建的类也是某一事物的抽象,所以也必须创建实例才能使用,如Date类,首先要创建该类的新实例,然后才可使用它的方法和属性,也就是创建了类的一个新实例后,该类的所有属性和方法都会被复制到该实例中。 var currentDate=new Date()

字符串处理:字符串类型,字符串对象及属性和方法;

数值处理:数字类型,Math对象及属性和方法;Number对象;

Date对象;

运算符是指完成一系列操作的符号;

流程控制:体现逻辑之美;

  1. 条件判断:if,switch;
  2. 循环控制:while,for;
  3. 跳转语句:continue,break;

代码块(复合语句):{}视为一条语句;

控制语句可以实现顺序执行以外的代码执行方式。

HTTP协议最早是不保存访问网页的静态信息,不需要记录不同访客的独特需求的。尽管这样的设计是高效的,但它存在着一定的弊端。因为服务器不记录每个用户的信息,所以Web浏览器将每一次访问都看作一次全新的会话,也就是说,在浏览器和服务器之间完成一次会话后,就丢弃了连接,浏览器和服务器都不会保持两次会话之间的状态。这样影响到了用户与网站之间的交互。现在的Web浏览器多用Cookie来维护用户的状态信息。Cookie是唯一一种在无序的页面中保护用户状态的方法。

转义字符Escape sequence

反斜框"\"开头的不可显示的特殊字符通常称为控制字符,也被称为转义字符。

转义无非是两种情况:1:将普通字符转为特殊用途,一般是编程语言中,用于表示不能直接显示的字符,比如后退键,回车键,等。2:用来将特殊意义的字符转换回它原来的意义。一般用在正则表达式中。还有有些脚本语言是弱类型,有些语言比如html 并不是编程语言,而是标记语言,有些语言只有一种类型 比如shell 脚本语言,这些语言中字符串都不加引号” ” ,或者可以不加引号“ ”,所以有时候需要转移字符说明某字符此时的身份是普通字符,而不是有特殊意义的元字符。

JS 提供了一些特殊字符,允许在字符串中包括一些无法直接键入的字符。每个字符都以反斜杠开始。反斜杠是一个转义字符,表示 JScript 解释器下面的字符为特殊字符。

正则表达式:"/.../"的样式;是模糊匹配和替换的强有力的工具;

正则表达式也是一种语言,是一种专门为特定用途而设计的语言,称为DSL,Domain Specific Language,其应用领域主要集中于搜索search与替换repalce.

了解转义符,首先要了解什么是字符串,每一个汉字\字母\数字\符号\都是字符串的每个单元,比如字符串"ABC",他代表这个有"A"和"B"和"C"的三个单元字节组成的一个整体.如果双引号前加转义符,代表是双引号只是这个字符串的一个字节单元,而双引号本身在字符串里出现表示:结束这个字符串.所以如果,想要不结束这个字符串,而又必须用到双引号,那就可以在双引号前加"\"转义为不结束字符串,只表示一个字节单元罢了.

另外\+字母还可以表示其他的含义,如\n -换行符,\r -回车符,

HTML特殊转义字符列表

显示 说明 实体名称 实体编号
不断行的空白格 &nbsp; &#160;
< 小于 &lt; &#60;
> 大于 &gt; &#62;
&amp; &符号 &amp; &#38;
备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆 .

JavaScript转义符

转义序列 字符
\b 退格
\f 走纸换页
\n 换行
\r 回车
\t 横向跳格 (Ctrl-I)
\' 单引号
\" 双引号
\\ 反斜杠

JS脚本库:如ExtJs,prototype,Dojo等,这些脚本库让开发人员从复杂繁琐的JavaScript中解脱出来,将开发的重点从实现细节转向功能需求上。

库,如JQuery

库:使用库,可以不必书写那些处理约定俗成的代码,从而能够简单的实现这些功能;JQuery是现今使用最的JS库。

Jquery(链式语法+自定义选择器):压缩后只有31KB,通过链式语法实现,支持插件,可扩展性高,通过CSS选择器及自定义选择器获取元素。

JQery尽可能地隐藏了DOM API并对其进行了重新定义。

JQery使用$函数。

异常处理

try

{

//执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容

}

catch

{

//除非try里面执行代码发生了异常,否则这里的代码不会执行

}

finally

{

//不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally

}