实验五JAVASCRIPT实验内容1.JAVASCRIPT基础语法2.JAVASCRIPT实现日历3.JAVASCRIPT控制COOKIE4.运行2个JAVASCRIPT程序首先确认在本地计算机是否安装了网页编辑软件,如DreamWeaver。若无,则安装,序列号在”安装密码.txt”文件中。内容一:JAVASCRIPT概念Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。变量常用类型Object:对象Array:数组Number:数Boolean:布尔值,只有true和false两个值,是所有类型中占用内存最少的null:一个空值,唯一的值是null,表空引用undefined:没有定义或赋值的变量NaN:非数字类型命名形式一般形式是:var变量名表;其中,var是javascript的保留字,表面接下来是变量说明,变量名表是用户自定义标识符,变量之间用逗号分开。和C++等程序不同,在javascript中,变量说明不需要给出变量的数据类型。此外,变量也可以不说明而直接使用。事件用户与网页交互时产生的操作,称为事件。事件可以由用户引发,也可能是页面发生改变,甚至还有你看不见的事件(如Ajax的交互进度改变)。绝大部分事件都由用户的动作所引发,如:用户按鼠标的按键,就产生click事件,若鼠标的指针在链接上移动,就产生mouseover事件等等。在JavaScript中,事件往往与事件处理程序配套使用。而对事件的处理,W3C的方法是用addEventListener()函数,它有三个参数:事件,引发的函数,是否使用事件捕捉。为了安全性,建议将第三个参数始终设置为false传统的方法就是定义元素的on…事件,它就是W3C的方法中的事件参数前加一个“on”。而IE的事件模型使用attachEvent和dettachEvent对事件进行绑定和删除。JavaScript中事件还分捕获和冒泡两个阶段,但是传统绑定只支持冒泡事件。对象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方法Javascript加入网页有两种方法:直接方式和引用方式。直接方式直接调用分为两种形式:代码块和代码行代码行引用:ahref=javascript:alert(1)aa/a这种方式应用比较简单,直观,多用于测试代码块:这是最常用的方法,大部分含有Javascript的网页都采用这种方法,例如:scripttype=application/javascript!--document.write(这是Javascript!采用直接插入的方法!);//-Javascript结束--/script在这个例子中,我们可看到一个新的标签:script……/script,而scriptlanguage=Javascript用来告诉浏览器这是用Javascript编写的程序,需要调动相应的解释程序进行解释。(w3c已经建议使用新的标准:scripttype=application/javascript)引用方式如果已经存在一个Javascript源文件(通常以js为扩展名),则可以采用这种引用的方式,以提高程序代码的利用率。其基本格式如下:scriptsrc=“url”type=text/javascript/script其中的Url就是程序文件的地址。同样的,这样的语句可以放在HTML文档头部或主体的任何部分。如果要实现“直接插入方式”中所举例子的效果,可以首先创建一个Javascript源代码文件“Script.js”,其内容如下:document.write(这是Javascript!采用直接插入的方法!);在网页中可以这样调用程序:scriptsrc=Script.jstype=text/javascript/script也可以同时在导入文件时制定javascript的版本,例如:scriptsrc=Script.jstype=text/javascript;version=1.8/script注意:凡是指定了src属性的script标签里的内容都会被忽略。示例一:htmlheadscripttype=text/javascript!--document.write(Hello,world!)//直接在浏览器视窗显示。--/script/headbody/body/html示例二:打开一个页面的同时弹出一个提示窗口htmlhead/headbodyonLoad=alert('Hello,world!')/body/htmlhtmlhead/headbodyonLoad=prompt('Hello,world!')/body/htmlhtmlhead/headbodyonLoad=confirm('Hello,world!')/body/html示例三:设置页面颜色htmlhead/headbodyonLoad=document.bgColor='red'/body/html内容二:JAVASCRIPT控制日历,在调试时注意去掉红色注释部分htmlheadtitlejavascripttest/titlescripttype=text/javascriptfunctionsetDay(){vartheyear=document.getElementById(year);varthemonth=document.getElementById(month);varthemaxmonthday=31;varisLeap=1;判断是否为闰年year=theyear.value;if((year%400==0)||((year%4==0)&&(year%100==0)))isLeap=0;elseisLeap=1;month=parseInt(themonth.value);字符向数字类型转换,判断每月天数switch(month){case1:case3:case5:case7:case8:case10:case12:themaxmonthday=31;break;case2:if(isLeap==0)themaxmonthday=29;elsethemaxmonthday=28;break;default:themaxmonthday=30;break;}alert(year+-+themonth.value+-+themaxmonthday);提示当前年月日vartheday=document.getElementById(day);生成日控件vartempdaylength=theday.options.length;for(varj=tempdaylength;j0;j--){theday.options.remove(j);}for(vari=1;i=themaxmonthday;i++){vartheOption=document.createElement(option);theOption.innerHTML=i;theOption.value=i;theday.appendChild(theOption);}}/script/headbodyselectid=yearscriptlanguage=JavaScript生成年控件for(i=2000;i2013;i++)document.write(opt