JavaScript

JavaScript是基于对象和事件驱动的脚本语言,主要应用在客户端。

特点:1.交互性(它可以做的就是信息的动态交互)

      2.安全性(不允许直接访问本地硬盘)

      3.跨平台性(只要是可以解释js的浏览器都可以执行,和平台无关。)

JavaScript与Java的不同:

      1.JS是Netscape公司的产品,前身是LiveScript;Java是Sun公司的产品,现在是Oracle公司的产品。

      2.JS是基于对象的,Java是面向对象的。

      3.JS只需解释就可以执行,Java需要先编译成字节码文件才可以执行。

      4.JS是弱类型,Java是强类型。


JavaScript与Html结合的方式:

a):JS代码存放在标签中。

b):当有多个html页面使用到相同的JS脚本时,可以将JS代码封装到一个文件中,只要在script标签

   的src属性引入一个JS文件。(方便后期维护,扩展)

   注意:如果在script标签中定义了src属性,那么标签中的内容不会被执行。

   例:

规范中script标签早期有一个属性language,而现在使用type属性。


通常高级程序设计语言所包含的语法内容:

1.关键字:这种语言中被赋予了特殊含义的单词

2.标识符:用于标识数据表达式的符号,通常可以理解为在程序中自定义的名称,比如变量名,函数名。

3.注释:注解说明解释程序,或者用于调试程序。

4.变量:用于标识内存中的一片空间,用于存储数据,该空间中的数据是可以变化的。

什么时候使用变量?当数据不确定的时候。

5.运算符:可以让数据进行运算的符号。

6.语句:用于对程序的运行流程进行控制的表达式。

7.函数:用于对功能代码进行封装,便于提高复用性。

8.数组:对多数据进行存储,便于操作。其实就是个容器。

9.对象:只要是基于对象或者面向对象的语言,就存在着对象的概念。

对象就是一个封装体,既可以封装数据又可以封装函数。

这些都是高级程序设计语言具备的共性内容,只不过各种语言对这些内容的表现形式不同。

但是使用思想基本一致。













练习:在页面中显示一个99乘法表

这是一个网页的标题。

这是我的


网页内容




JavaScript中的数组:

数组是一个容器,是用来存储更多数据的。

1.定义方式a:var arr=[1,2,3,4];      注意:数组的数据类型是object,对象类型。

  定义方式b:var arr=new Array(5); //定义长度为5的数组。

2.遍历数组:

var arr=[1,2,3,4];

for(var x=0;x

document.write("arr["+x+"]="+arr[x]+"
");

}

3.数组长度是可变的,元素类型是任意的,但最好存同一类型,操作方便。





JavaScript中的函数:

函数是一个功能的封装体。定义函数通常需要明确功能的结果和功能实现中的参与运算的未知内容。

通过关键字function来定义函数。

function 函数名(参数列表){

函数体;

return 返回值;    //如果没有具体的返回值,return语句可以省略不写。

}

一些细节:

1.只有使用函数的名称对函数进行调用时,函数才会运行。

2.函数中有一个数组会把传入的参数进行存储,这个数组就是arguments。

3.function getSum(){

return 100;

}

//   var sum=getSum();    //getSum函数正常运行。并将返回值赋给sum

//   var sum1=getSum;     //getSum本身是一个函数名,js是基于对象,函数本身就是一个对象,getSum就是对这个函数的引用。

 //所以就会将getSum这个引用的地址值赋给sum1,这时sum1也就指向了这个对象。相当于这个函数对象有两个名称。

//   alert(sum1);  //打印时sum1指向函数对象,那么就会将这个函数的代码原封不动打印出来。就是该函数的代码定义格式。


JavaScript中函数的其他表现形式:

动态函数:使用的是JS中内置的一个对象Function。用的不是很多。

 参数列表和函数体都是通过字符串动态指定的。

var add=new Function("x,y","var sum;sum=x+y;return sum;");

var haha=add(4,8);

alert("haha="+haha);   //输出为12  


匿名函数:没有名字的函数。通常是函数的简写形式。这个还用的挺多的。

var add1=function(a,b){

return a+b;

}

alert (add1(7,8));          //输出为15

 



综合练习:1.定义功能,完成对数组的最值获取。

 2.对数组进行从小到大排序。

 3.对数组进行查找。

 4.对数组元素进行反转。

这是一个网页的标题。

   




在JavaScript中,脚本片段里定义的变量是全局变量。

即该变量的作用范围是在整个标签内,这与java不同。

而当变量定义在函数function中就是局部变量,作用范围就只在这个函数中。



JavaScript中的对象

1.Object对象

  包含的方法:toString():将对象变成字符串。如果对象是函数的话,就返回函数的源代码。

         valueOf():返回指定对象的原始值。

2.String对象

  定义方法:var str="abc";

   var str=new String("abc");  

  属性:constructor    length    prototype

  常用方法:str.bold 加粗

   str.fontcolor       字体颜色

   str.link 将字符串变成超链接

   str.substr(1,3) 从字符串角标为1处截取长度为3的子字符串,如abcde就变成bcd

   str.substring(1,3) 从字符串角标为1处截取到角标为3处,如abcde就变成bc

 

自定义一个方法,用来去除字符串两端的空格。

function trim(str){

  //定义两个变量,一个记录开始的位置,一个记录结束的位置

  //对于开始的位置的字符进行判断,如果是空格,就递增,直到不是空格为止。

  //对于结束的位置的字符进行判断,如果是空格,就递减,直到不是空格为止。

  //必须要保证开始<=结束才可以进行截取。

var start,end;

start=0;

end=str.lenth-1;

while(start<=end&&str.charAt(start)==' '){

start++;

}

while(start<=end&&str.charAt(end)==' '){

end--;

}

return str.substring(start,end+1);

}

这个自定义的trim方法使用时,必须得调用这个方法,能否像string对象的方法那样,直接把它定义在字符串对象中呢?

这就和string对象的原型prototype属性有关了。原型:就是该对象的描述,该描述中如果添加了新功能,那么该对象就具备了新功能。

而prototype就可以获取到这个原型对象,通过prototype就可以对对象的功能进行扩展。


需求:给string对象添加一个可以去除字符串两端空格的新功能。(用prototype属性完成)


String.prototype.trim=function(str){

var start,end;

start=0;

end=str.lenth-1;

while(start<=end&&str.charAt(start)==' '){

start++;

}

while(start<=end&&str.charAt(end)==' '){

end--;

}

return str.substring(start,end+1);

}




练习:

   

我的网页

   

   

   



3.Array对象

  演示:    


   

我的网页

   

   

  

   


如何给数组对象添加自定义的新功能呢?

这也要用到原型属性。

Array.prototype.getMax=function(){

var temp=0;

for(var x=1;x

if(this[x]>this[temp]){

temp=x;

}

}

return this[temp];

}

这样就可以直接用Array的getMax方法了。



4.Date对象

   

我的网页

   

   

   



为了简化对象调用内容的书写,可以使用JS中的特有语句来完成。

格式:

with(对象){

在该区域中可以直接使用指定对象的内容,而不需要在方法前写“对象.”

}

没啥技术含量,了解就行。




5.Math对象(该对象中的方法都是静态的,不需要new,直接调用即可。)

   

我的网页

   

   

   




6.global对象(全局对象)

   

我的网页

   

   

   



JS中的特有语句:for in

格式:

for(变量 in 对象){     //对对象进行遍历的语句


}

举例:

var arr=[32,80,65];

for(i in arr){

document.write("i="+arr[i]);      //结果就对这个数组进行了遍历。

}



7.JS中的自定义对象

   

我的网页