JavaScript_JavaScript


JavaScript概述

    JavaScript是基于对象和事件的脚本语言。

    特点:

    1、安全性(不允许直接访问本地硬盘),它可以做的就是信息的动态交互;

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

JavaScript与Java不同

    1、JS是Netscape公司的产品,Java是Sun公司的产品;

    2、JS是基于对象,Java是面向对象;

    3、JS只需解释就可以执行,Java需要先编译成字节码,再执行;

    4、JS是弱类型,Java是强类型;

    5、js是非严谨的,java是严谨的,javascript运行在网页的客户端。

JavaScript和Html的结合方式

    想要将其他代码融入到html中,都是以标签的形式。

    1、JS代码存放在标签对<script>…</script>中;

    2、使用script标签中的src属性引入一个js文件(方便后期维护、扩展);

    例如:<script src=”test.js” type=”text/javascript”></script>

    注:规范中script标签中必须加入type属性。

JavaScript语法

    每一种语言都有自己的语法规则,JS语法与Java很像,所以学习起来比较容易。JS中也一样有变量、语句、函数、数组等常见的语言组成元素。

1、变量

    通过关键字var来定义,弱类型即不用指定具体的数据类型。

    例如:var x = 3;x=”abc”;

    注:JS中特殊的常量值:undefined,当变量没有初始化就被使用,该变量的值就是undefined(未定义)。

2、语句(与Java语句格式相同)

    1、判断语句(if语句)

        注:var x=3; if(x==4)//可以进行比较运算;if(x=4)//可以进行赋值运算,而且可以同样进行判断,不报错。

    因为在JS中0就是false,非0就是true(通常用1表示);所以if(x=4)结果为true。

    2、选择结构(switch语句)

    3、循环结构(while语句、do…while语句、for语句)

    JS特有的语句:with(对象){}:可以确定对象所使用的范围。在范围内,可以直接使用指定对象的属性和行为,而不用:对象. 形式调用。简化了对象的操作。

    for(变量 in 对象):可以对变量的属性以及行为进行遍历。

    注:不同的是,没有具体数据类型的限制,使用时要注意。

JS的错误提示:在网页的状态栏左下角叹号提示!

代码演示:九九乘法表

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>九九乘法表</title>

<style type="text/css">
table{
	width:600px;
	border-collapse:collapse;
	}
table td{
	border:#000099 1px solid
	}
</style>
</head>

<body>
	<script type="text/javascript">
		document.write("<table>");
		//相当于syso
		for(var x=1;x<=9;x++){
			document.write("<tr>");
			for(var y=1;y<=x;y++){
				document.write("<td>"+y+"*"+x+"="+x*y+"</td>");
			}
			document.write("</tr>");
		}
		document.write("</table>");
	</script>
</body>
</html>
效果图:


3、函数

    一般函数:格式:function 函数名(形式参数…)

    {

        执行代码;

        return 返回值;

    }

    函数时多条执行语句的封装体,只有被调用才会被执行;

    注意:调用有参数的函数,但没有给其传值,函数一样可以运行,或者调用没有参数的函数,给其传值,该函数也一样运行。简单说:只要写了函数名后面跟了一对小括号,该函数就会运行。其实,在函数中有一个参数数组对象(arguments),该对象将传递的参数都封装在一个数组中。

    为了增强阅读性,最好按照规范,按照定义好的形式参数传递实际参数。

    动态函数:通过JS的内置对象Function实现。

    匿名函数: function(){…},通常在定义事件属性的行为时较为常用。

    例如:window.onload = test;

    可以写成匿名函数的形式:

    window.onload = function()

    {alert(“ok”);}

    匿名函数就是一种简写格式。

4、数组:方便操作多元素的容器,可以对其中的元素进行编号。

    特点:可以存储任意元素,长度是可变的。

    格式:var arr = new Array();

        arr[0]= “hello” arr[1] = 123;

        var arr=[‘hello’,123,true,”abc”];

    通过遍历即可对数组进行基本操作;

    for(varx=0;x<arr.length;x++){alert(arr[x]);}

代码演示:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>javascript函数</title>
</head>

<body>

<script src="arraylool.js" type="text/javascript"> </script>

<script type="text/javascript">

var arr=[12,36,41,95,1,30];

//不用写var 直接写arr即可
function show(arr){
	for(var x=0;x<arr.length;x++){
	for(var y=x+1;y<arr.length;y++){
		if(arr[x]>arr[y]){
			var temp=arr[x];
			arr[x] = arr[y];
			arr[y] = temp;
		}
	}
	}
}

show(arr);
var str="";
function printArray(arr){
	for(var x=0;x<arr.length;x++){
		if(x!=arr.length-1)
			str+=arr[x]+",";
		else
			str+=arr[x];
	}
	return str;
}
printArray(arr);
var s=printArray;//函数也是一个对象
alert(str);
alert(s);

//动态函数
var show1= new Function("x","y","var sum=x+y;return sum;");
var sum = show1(1,3);
alert(sum);

//匿名函数,c常常用于事件驱动
var show2 = function(){
	alert("functiong run");
}
show2();

//可以通过函数来描述对象
/*function Person(){
	alert("person init");
}
var p = new Person();
p.name = "zhangsan";
p.age = 30;

p.chifan = function(){
	alert("eat....");
}
p.chifan();
*/
function Person(name,age){
	this.name = name;
	this.age = age;
}
var p = new Person("lisi",23);
alert(p.name+"....."+p.age);

function Student(name,age){
	this.name = name;
	this.age = age;
}

var stu = new Student("wangwa",32);

with(stu){
	alert(name+"............"+age);
}

for(s in stu){
	alert(s+"::"+stu[s]);
}

</script> 
</body>
</html>

5、自定义对象:JS除了已经提供的内置对象外,也可以自定义对象。

    例如:

    function Person()//很像java中的构造函数,P不一定要大写。

    {

    }

    var p = new Person;

p.name = “zs”;

    p.age = 20;

    p.run = function()//定义成员函数

    {

    }

    或者:

    function Person(name,age){

        this.name= name;

        this.age= age;

    }

    var p = new Person(“lisi”,23);

6、Javascript中已定义好的一些对象,String、Math、Date、Array、Function。

    这些对象都有一个属性叫做prototype原型,prototype可以获取执行的对象引用,可以通过该引用给已有的对象赋予一些新的功能;那么在使用该对象时,可以直接调用定义好的新功能。

    function getMax()

    {

        varmax = 0;

        for(varx=1;x<this.length;x++)

        {

            if(this[x]>this[max])

                max = x;

        }

        return this[max];

    }

    var arr = [3,4,5,6,7];

    arr.sort();//直接调用Array对象的sort对象的sort方法对数组进行排序,

    将getMax方法添加到Array对象中,Array.prototype.getMax = getMax;

    var x = arr.getMax();

    alert(“max = ”+x);

    var str = “abc”;

    str.subString(1,2);

    str.bold();//<b>str</b>

常见的全局方法:定义在Global对象中

parseInt(numstr,[radix]);//将数字格式的字符串转成整数,如果指定了基数,那么numstr就会按照执行基数进行转换。

    var num = parseInt(“110”,2);//表示将”110”这个字符串会按照二进制进行转换。

    alert(“num = ”+num);//num = 6;

    var x=6;

    alert(x.toString(2));//110,获取6对应的二进制表现形式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章