JavaScript使用手册(二)

对象:
对象是一组具有属性和方法的经过组织的数据。

默认对象:
日期对象;(日期基线:1970年1月1日00:00:00)
建立日期对象(实例):
  格式:日期对象名称=new Date([日期参数])
  日期参数:1.省略;
       2.英文-数值格式:月 日,公元年 [时:分:秒]
         如:today=new Date("October 1,2008 12:00:00")
       3.数值格式:公元年,月,日,[时,分,秒]
         如:today=new Date(2008,10,1)
日期对象的方法:
  格式:日期对象名称.方法([参数])
获取当地时间:
getYear() 返回年份数
getFullYear() 返回年份数
getMonth() 返回月份数(0--11)
getDate() 返回日期数(1--31)
getDay() 返回星期数(0--6)
getHours() 返回时数(0--23)
getMinutes() 返回分数(0--59)
getSeconds() 返回秒数(0--59)
getMilliseconds() 返回毫秒数(0--999)
getTime() 返回对应日期基线的毫秒
Date.parse(日期字串) 返回对应日期基线的毫秒
setTime(时间值) 指定一日期对象的值
toGMTString() 以GMT格式表示日期对象
toUTCString() 以GMT格式表示日期对象
数组对象;
建立数组对象:
   格式1:数组对象名称=new Array([元素个数])
   格式2:数组对象名称=new Array([[元素1][,元素2,...]])
   格式3:数组对象名称=[元素1[,元素2,...]]
   例:
     fruit=new Array(3);// fruit=new Array();
     fruit[0]="苹果";
     fruit[1]="梨子";
     fruit[2]="橘子";
     fruit=new Array("苹果","梨子","橘子");
     fruit=["苹果","梨子","橘子"];
数组对象的属性:
  格式:数组对象名称.属性
  属性:length  数组长度
  例:
<Script>
var fruit = new Array("苹果", "梨子", "橘子");
var i;
for (i=0; i < fruit.length; i++) {
    document.write("fruit [", i, "] = ", fruit[i], "<br>")
}
</Script>

数组对象的方法:
  格式:数组对象名称.方法([参数])
  方法: join([分隔符]) 数组元素组合为字符串
toString() 以字符串表示数组
reverse() 数组反转
valueOf() 返回数组值
   例:
<Script>
var fruit = new Array("苹果", "梨子", "橘子");
document.write("<LI>", fruit.join());
document.write("<LI>", fruit.join("、"));
document.write("<LI>", fruit.toString());
document.write("<LI>", fruit.reverse().join());
document.write("<LI>", fruit.valueOf());
</Script>

二维数组:
   例:
<Script>
var fruit = new Array(3);
fruit[0] = new Array("苹果", 2);
fruit[1] = new Array("梨子", 4);
fruit[2] = new Array("橘子", 2);
for (i=0; i < fruit.length; i++) {
  for (j=0; j < fruit[0].length; j++) {
    document.write("fruit [", i, "][", j, "] = ", fruit[i][j],"<br>");
  }
  document.write("<br>");
}
</Script>
字符串对象;
建立字符串对象:
  格式:字符串对象名称=new String(字符串常量)
  格式:字符串变量名称="字符串常量"
字符串对象的属性:
  格式:字符串对象名称.属性
  属性:length   字符串长度
字符串对象的方法:
  格式:字符串对象名称.方法
  方法: bold() 粗体
italtics() 斜体
strike() 删除线
fontsize(字级大小) 文字大小
fontcolor(#rrggbb) 文字颜色
sup() 上标
sub() 下标
toUpperCase() 大写
toLowerCase() 小写
charAt(索引) 返回索引位置的字符
charCodeAt(索引) 返回索引位置的ASCII字符码,十进制表示
indexOf("字串"[,索引]) 返回字串在对象中的索引位置
lastIndexOf("字串"[,索引]) 返回字串在对象中的索引位置(反向搜索)
search("字串") 返回字串在对象中的索引位置
replace("字串1","字串2") 字串2替换字串1
slice(索引i[,索引j]) 返回索引i倒索引j-1的子串
split(["字串"][,限制]) 将字串从对象中删除
substr(start[,length]) 返回特定长度的字串
substring(索引i[,索引j]) 返回索引i倒索引j-1的子串
link("url") 设置链接
match(/匹配字符/) \d
 匹配一个数字字符。
 
\D
 匹配一个非数字字符。
 
\n
 匹配一个换行符。
 
\r
 匹配一个回车符。
 
\s
 匹配一个空格符。
 
\S
 匹配任意非空格符。
 
\t
 匹配一个table符。
 
\W
 匹配任何非单词符。
 
\num
 匹配正整数num。
 
/n/
 匹配八进制,十六进制,十进制的escape值。
 
 
toString() 返回字符串
valueOf() 返回字符串值
  例1:
<Script>
var str = "JavaScript";
document.write(str.bold(),"<BR>");
document.write(str.fixed(),"<BR>");
document.write(str.fontcolor("red"),"<BR>");
document.write(str.fontsize(5),"<BR>");
</Script>
  例2:
<Script>
var str = "JavaScript";
var num = 1234;
document.write(str.toUpperCase(), "<BR>");
document.write(num.toString().charAt(2),"<BR>");
document.write(str.substring(0,4), "<BR>");
</Script>

  例3:
<Script>
var str = "JavaScript";
document.write(str, " 有 ", str.length, " 个字<BR>");
document.write(str.fontcolor("green"), " 不是 ");
document.write(str.substr(0,4).fontcolor("red"));
document.write(" 也不是 ", str.replace("Java", "VB"));
</Script>

  例4:
<Script>
var str = "[email protected]";
var idx = str.search("@");
var usr = str.substr(0,idx);
document.write(usr.toUpperCase().fontsize(7), "<BR>");
document.write("你的电子信箱是", str);
</Script>

  例5:
<Script>
function isEmail(){
  var str = document.form1.add.value;
  if (str.indexOf("@") == -1)
    alert("请填写正确的EMail地址");
  else
    alert("OK!");
}
</Script>
<FORM name="form1">
请输入你的 EMail 地址:
<INPUT TYPE="text" name="add">
<INPUT TYPE="button" value="开始检查" onClick="isEmail()">
</FORM>
布尔对象;
建立布尔对象:
   格式:布尔对象名称=new Boolean(转换值)
   转换值:null、未定义、0、或false均转换成false
布尔对象的方法:
  格式:布尔对象名称.方法
  方法:toString()
     valueOf()
  例:
<Script>
x = new Boolean();
y = new Boolean(true);
z = new Boolean(0);
document.write(x, "<br>");
document.write(y, "<br>");
document.write(z, "<br>");
</Script>
数学对象;(静态对象)
数学对象的属性:
  格式:Math.属性
  属性: E 自然对数的底数
LN2 2的自然对数
LN10 10的自然对数
LOG2E 以2为底e的对数
LOG10E 以10为底e的对数
PI 圆周率
SQRT1_2 1/2的平方根
SQRT2 2的平方根

数学对象的方法:
  格式:Math.方法(参数)
  方法: ceil(数值) 大于等于该数值的最小整数
floor(数值) 小于等于该数值的最大整数
min(数值1,数值2) 最小值
max(数值1,数值2) 最大值
pow(数值1,数值2) 数值1的数值2次方
random() 0倒1的随机数
round(数值) 最接近该数值的整数
sqrt(数值) 开平方根
abs、sin(弧度)、cos、tan、asin、acos、atan、exp、log
  例1:
<Script>
with (document) {
    write("<LI>2 的平方根值是 ", Math.sqrt(2));
    write("<LI>2 <sup>3</sup> = ", Math.pow(2,3));
    write("<LI>最接近 3.14 的整数是 ", Math.round(3.14));
}
</Script>

  例2:
<Script>
var now = new Date();
var firstDay = new Date("Nov 10, 1999");
var duration = now - firstDay;
var msPerDay = 24 * 60 * 60 * 1000; //换算成毫秒
days = Math.round(duration/msPerDay);
document.write("本网站已经开幕" + days + "天了");
</Script>
例3:
<Script>
var promote = new Array(3);
promote[0] = "拍卖区又有新货到了,赶快来捡便宜啊......"
promote[1] = "成为会员,马上享受八折优惠,还可以参加抽奖!";
promote[2] = "庆祝访问人数突破十万人次,填问卷就送大奖,快来啊!";
index = Math.floor(Math.random() * promote.length);
document.write(promote[index]);
</Script>
数值对象;
函数对象;

自定义对象。

自定义对象;
构造函数定义对象类型;
建立对象实例。
例:
<Script>
function member(name, sex) {
    this.name = name;
    this.sex = sex;
}
var papa = new member("杨宏文", "男生");
var mama = new member("黄雅玲", "女生");
var doggy = new member("奇 奇", "宠物狗");
document.write(papa.name);
document.write("是", papa.sex);
</Script>
动态的定义对象属性;
例:
为指定的对象实例定义属性:papa.hobby="看电视";
为对象定义属性:member.prototype.hobby=null;
        papa.hobby="上网";
        mama.hobby="逛街";
        doggy.hobby="啃骨头";

定义对象的方法;
构造函数定义对象方法名;
建立方法的描述函数。
例:
<Script>
function member(name, sex) {
  this.name = name;
  this.sex = sex;
  this.display = display;
}
function display() {
  var str = this.name + "是" + this.sex;
  document.write("<LI>" + str);
}
var papa = new member("杨宏文", "男生");
var mama = new member("黄雅玲", "女生");
var doggy = new member("奇 奇", "宠物狗");
papa.display();
mama.display();
doggy.display();
</Script>
利用对象原型(prototype)为默认对象定义属性:
<Script>
String.prototype.replaceAll = strReplace;
function strReplace(findText, replaceText) {
  var str = new String(this);
  while (str.indexOf(findText)!=-1) {
    str = str.replace(findText, replaceText);
  }
  return str;
}
myStr = "告诉你 - 如果你正在寻找一本能帮助你彻底研究" +
"JavaScript的书籍,请你一定要认明碁峰的" +
"JavaScript教学范本,让你事半功倍,功力大增。";
document.write("<LI>原稿是:<BLOCKQUOTE>" + myStr +"</BLOCKQUOTE>");
document.write("<LI>利用Replace()将「你」改成「您」:"
+"<BLOCKQUOTE>" + myStr.replace('你','您') +"</BLOCKQUOTE>");
document.write("<LI>利用自定义的字符串方法 - 全部取代"
+"<BLOCKQUOTE>" + myStr.replaceAll('你','您') +"</BLOCKQUOTE>");
</Script>

默认函数:
编码函数 escape():将非字母、数字字符转换成ASCII码
例:sample/unescape

译码函数 unescape():将ASCII码转换成字母、数字字符
例:sample/unescape

求值函数 eval():
格式:eval(<表达式>)
例1:字符串运算
<Script>
x = 1 + 2;
y = "1 + 2";
z = eval("1 + 2");
document.write("<LI>1 + 2 = ", x);
document.write("<LI>\"1 + 2\" = ", y);
document.write("<LI>eval(\"1 + 2\") = ", z);
</Script>

例2:对象操作
<Script>
function show(obj){
    var str=eval("document.form."+obj+".value");
    alert(str);
}
</Script>
<form name="form" id="form">
姓名:
 <input name="name" type="text" id="name">
 <input type="button" name="Button" value="Button" onclick=show("name")>
</form>

数值判断函数 isNaN():是否为数值
格式:isNaN(<量>)
例:
<Script>
var x = 15;
var y = "黄雅玲";
document.write("<LI>x 不是数值吗?",isNaN(x));
document.write("<LI>y 不是数值吗?",isNaN(y));
</Script>
整数转换函数 parseInt():将不同进制(二、八、十六)的数值转换成十进制整数
格式:parseInt(数值字串[,底数])
底数省略,则按内容转换:
     0x 0X  十六进制  
     0  八进制
     其它  十进制
例:
<Script>
// 二进位转成十进位
document.write("1101<sub>2</sub> = " ,parseInt("1101", 2),"<sub>10</sub><br>");
// 十六进位转成十进位
document.write("BFFF<sub>16</sub> = " ,parseInt("BFFF", 16),"<sub>10</sub><br>");
</Script>

浮点数转换函数 parseFloat():将数值字串转换成浮点数
格式:parseFloat (数值字串)
例:
<Script>
document.write(parseInt("3.1234A56"), "<br>");
document.write(parseFloat("3.1234A56"), "<br>");
</Script>

函数:
独立于主程序的、具有特定功能的一段程序代码块。
函数的定义:
格式:
function 函数名([参数[,参数...]]){
    <语句组>
    [return <表达式>;]
}
约定:
1、函数名:易于识别;(同变量命名规则)
2、程序代码:模块化设计;
3、函数位置:按逻辑顺序,集中置顶。(<head>...</head>)
return语句:
格式:
return <表达式>;
功能:返回表达式的值。
函数的调用:
格式:
函数名([参数[,参数...]])
例1:
<Script>
function showName(name){
    document.write ( "我是" + name );
}
showName("黄雅玲");
</Script>
例2:
<Script>
function showName(name){
    str="我是" + name;
    return str;
}
document.write(showName("黄雅玲"));
</Script>

 
事件:
用户对浏览器所做的特定的动作(操作),是实现交互操作的一种机制。
事件名称 适用对象 意义 说明
Abort image 终止 当图形尚未完全加载前
Blur   失去焦点  
Change t/pw/ta/select 改变  
DragDrop window 拖曳  
Error   img/win 错误加载文件或图形时发生错误
Focus   取得焦点  
Move window 移动  
Reset form 重置  
Submit form    
Click/DblClick、KeyDown/KeyPress/KeyUp、Load/Unload、MouseDown/MouseUp/MouseOver/MouseOut/MouseMove
 
事件处理程序:
浏览器响应某个事件,实现用户的交互操作而进行的处理(过程)。
事件处理程序的调用:
浏览器等待用户的交互操作,并在事件发生时,自动调用事件处理程序(函数),完成事件处理过程。
HTML标签属性:
格式:
<tag on事件=“<语句组>|<函数名>”>
例1:
<body onload="alert('建议浏览器的分辨率:800x600');">
<body onload="var str='建议浏览器的分辨率:800x600';alert(str);">
例2:
<script>
function show(){
    var str="建议浏览器的分辨率:800x600";
    alert(str);
}
</script>
<body onload="show();">
对象属性:
格式:
对象名.on事件=<语句>|<函数名>
例1:
document.onload=alert("建议浏览器的分辨率:800x600");
var str="建议浏览器的分辨率:800x600";
document.onload=alert(str);
例2:
<script>
function show(){
    var str="建议浏览器的分辨率:800x600";
    alert(str);
}
document.onload=show();
</script>

例1:
<Body>
<FORM>
请输入基本资料:<BR>
姓名:
<INPUT TYPE="text" NAME="usr" SIZE="8">
<INPUT TYPE="button" VALUE=" 请单击" onClick="alert('谢谢你的填写...')">
</Body>
例2:
<Script>
function handelError(img){
    msg = "有一图文件,名为: \'" + img.name + "\'\n无法顺利显示,请通知系统管理人员" + ",敬备薄礼相送。";
    alert(msg);
}
</Script>
<IMG src="/abc.gif" NAME="中国电信的广告" onError="handelError(this)">
例3:
<Body>
<A HREF="http://www.hubert.idv.tw/" onMouseOver="status='最棒的学习网站';return true;" onMouseOut="status='完毕'">文哥网络技术学习网</A>
</Body>
例4:
<Body>
<FONT STYLE="cursor:hand" onClick="location='http://www.hubert.idv.tw/'" onMouseOver="status='最棒的在线学习网站'; this.color='red';return true;" onMouseOut="status='完毕'; this.color='blue';">文哥网络技术学习网</FONT>
</Body>
例5:
<Script>
function mOver(object,msg){
   status = msg;
   object.color = "red";
   object.face = "华文楷体";
}
function mOut(object){
   status = '完毕';
   object.color = "blue";
   object.face = "幼圆";
}
</Script>
<Body>
<FONT STYLE="cursor:hand" onClick="location='http://www.hubert.idv.tw/'" onMouseOver="mOver(this,'最棒的线上学习网站'); return true;" onMouseOut="mOut(this)">文哥网络技术学习网</FONT>
</Body>
例6:
<STYLE> A {text-decoration:none} </STYLE>
<BODY>
搜寻引擎:<BR>
<IMG SRC="images\snow1.gif" NAME=gif_1>
<A HREF="http://www.yam.com/" onMouseOver="document.gif_1.src='images\\snow.gif'" onMouseOut="document.gif_1.src='images\\snow1.gif'">蕃薯藤</A><BR>
<IMG SRC="images\snow1.gif" NAME=gif_2>
<A HREF="http://www.kimo.com.tw/" onMouseOver="document.gif_2.src='images\\snow.gif'" onMouseOut="document.gif_2.src='images\\snow1.gif'">奇摩站</A>
</BODY>
例7:
<Script>
var url = new Array(3);
url[0] = "http://www.yam.org.tw/";
url[1] = "http://www.kimo.com/";
url[2] = "http://chinese.yahoo.com/";
function goto(i) {
    location = url[i];
}
</Script>
<table width=250><tr><td>
<form><fieldset>
<legend>搜寻引擎</legend>
<input name="go" type="radio" onClick="goto(0)">蕃薯藤
<input name="go" type="radio" onClick="goto(1)">奇摩
<input name="go" type="radio" onClick="goto(2)">中文雅虎
</fieldset></form>
</table>
 
定时器:(延迟器)
用以指定在一段特定的时间后执行某段程序。
setTimeout():(1.0版)
格式:
[定时器对象名=] setTimeout(“<表达式>”,毫秒)
功能:执行<表达式>一次。
例1:
<Script>
function count() {
    setTimeout("alert('三秒到了')",3000)
}
</Script>
<INPUT TYPE="button" VALUE=" 计时开始" onClick="count()">
例2:
<Script>
function show() {
    document.all['news'].style.display = "";
    setTimeout("hide()",500);
}
function hide() {
    document.all['news'].style.display = "none";
    setTimeout("show()",500);
}
</Script>
<Body onload="show()">
最新消息:<FONT ID="news" STYLE="display:none">十面埋伏...</FONT>
</Body>
clearTimeout():终止定时器
格式:
clearTimeout(定时器对象名)
 
setInterval():(1.2版)
格式:
[定时器对象名=] setInterval(“<表达式>”,毫秒)
功能:重复执行<表达式>,直至窗口、框架被关闭或执行clearInterval。
clearInterval():终止定时器
格式:
clearInterval(定时器对象名)
 
例1:
<Script>
var sec = 0;
timerID = setInterval("count()",1000);
function count() {
    num.innerHTML = sec++;
}
</Script>
停留时间:
<FONT ID="num" FACE="impact">0</FONT>秒钟
<INPUT TYPE="button" VALUE="停止" onClick="clearInterval(timerID)">
例2:
<Script>
var str = "这是一个在线拍卖的网站,请尽情血拼吧!";
var seq = 0;
function scroll() {
    msg = str.substring(0, seq+1);
    banner.innerHTML = msg;
    seq++;
    if (seq >= str.length) seq = 0;
}
</Script>
<Body onLoad="setInterval('scroll()',500)">
<FONT ID="banner"></FONT>
</Body>
 
图像对象:
网页中的图像均会被自动看作图像对象,并依顺序,分别表示为document.images[0],document.images[1]...
建立图像对象:
格式:
图像对象名称=new Image([宽度],[高度])   //px
图像对象的属性:
border complete height hspace lowsrc name src vspace width
图像对象的事件:
onAbort onError onKeyDown onKeyPress onKeyUop onLoad

 
例1:(预载)
<Script>
img0 = new Image();
img0.src = "images/snow0.gif";
img1 = new Image();
img1.src = "images/snow1.gif";
document.write ("已经读取两个图文件,但此时不显示。");
</Script>
例2:
<Script>
function img-preload(idx){
    eval("img"+idx+" = new Image()");
    eval("img"+idx+".src = 'images/snow"+idx+".gif'");
}
img-preload(0);
img-preload(1);
document.write ("已经读取两个图文件,但此时不显示。");
</Script>
例3:
<Script>
function img-preload(imgname,idx){
    eval("img"+idx+" = new Image()");
    eval("img"+idx+".src = 'images/"+imgname+".gif'");
}
img-preload("snow0",0);
img-preload("snow1",1);
document.write ("已经读取两个图文件,但此时不显示。");
</Script>

Navigator对象:(领航员)
检测浏览器的版本、所支持的MIME类型、已安装的外挂程序(plug-in)。该对象包含两个子对象:外挂对象、MIME类型对象。
Navigator对象的属性:
格式: navigator.属性
appCodeName 代码
appName 名称
appVersion 版本
language 语言
mimeType 以数组表示所支持的MIME类型
platform 编译浏览器的机器类型
plugins 以数组表示已安装的外挂程序
userAgent 用户代理程序的表头
 
例1:
<Script>
with (document) {
    write ("你的浏览器信息:<OL>");
    write ("<LI>代码:"+navigator.appCodeName);
    write ("<LI>名称:"+navigator.appName);
    write ("<LI>版本:"+navigator.appVersion);
    write ("<LI>语言:"+navigator.language);
    write ("<LI>编译平台:"+navigator.platform);
    write ("<LI>用户表头:"+navigator.userAgent);
}
</Script>
例2:
<Script>
if (document.all) {
   document.write("你的浏览器是:MSIE");
}   else {
   document.write("你的浏览器是:Navigator");
}
</Script>
 
plugin对象的属性:
格式: navigator.plugins.属性
description 外挂程序模块的描述
filename 外挂程序模块的文件名
length 外挂程序模块的个数
name 外挂程序模块的名称
 
例:
<Script>
var len = navigator.plugins.length;
with (document) {
    write ("你的浏览器共支持" + len + "种plug-in:<BR>");
    write ("<TABLE BORDER>")
    write ("<CAPTION>PLUG-IN 清单</CAPTION>")
    write ("<TR><TH> <TH>名称<TH>描述<TH>文件名")
    for (var i=0; i<len; i++)
        write("<TR><TD>" + i +
            "<TD>" + navigator.plugins[i].name +
            "<TD>" + navigator.plugins[i].description +
            "<TD>" + navigator.plugins[i].filename);
}
</Script>
 
mimeType对象的属性:
格式:navigator.mimeTypes.属性
description MIME类型的描述
enablePlugin 对应到哪个外挂模块
length MIME类型的数目
suffixes MIME类型的扩展名
type MIME类型的名称
 
例:
<Script>
var len = navigator.mimeTypes.length;
with (document) {
    write ("你的浏览器共支持" + len + "种MIME类型:");
    write ("<TABLE BORDER>")
    write ("<CAPTION>MIME type 清单</CAPTION>")
    write ("<TR><TH> <TH>名称<TH>描述<TH>扩展名<TH>附注")
   for (var i=0; i<len; i++) {
       write("<TR><TD>" + i +
           "<TD>" + navigator.mimeTypes[i].type +
           "<TD>" + navigator.mimeTypes[i].description +
           "<TD>" + navigator.mimeTypes[i].suffixes +
           "<TD>" +
          navigator.mimeTypes[i].enabledPlugin.name);
}
}
</Script>

你可能感兴趣的:(JavaScript)