第三章数组
一、创建数组语法:
var myarray=new Array();
var myarray= new Array(8); //创建数组,存储8个数据。
注意:
1.创建的新数组是空数组,没有值,如输出,则显示undefined。
二、数组赋值
var myarray=new Array(); ()里面是数组的长度
myarray[0]=66;
myarray[1]=80;
myarray[2]=90;
方法一:var myarray = new Array(66,80,90,77,59);//创建数组同时赋值
方法二:var myarray = [66,80,90,77,59];//直接输入一个数组(称 “字面量数组”)
三、数组属性length
语法:myarray.length; //获得数组myarray的长度
<pre name="code" class="html">var arr=[98,76,54,56,76]; // 包含5个数值的数组
document.write(arr.length); //显示数组的长度5
arr[15]=34; //增加元素,使用索引为15,赋值为34
alert(arr.length); //显示数组的长度16
四、二维数组
一维数组的表示: myarray[ ]
二维数组的表示: myarray[ ][ ]
1. 二维数组的定义方法一
var myarr=new Array(); //先声明一维
for(var i=0;i<2;i++){ //一维长度为2
myarr[i]=new Array(); //再声明二维
for(var j=0;j<3;j++){ //二维长度为3
myarr[i][j]=i+j; // 赋值,每个数组元素的值为i+j
2. 二维数组的定义方法二
var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]]
3. 赋值
myarr[0][1]=5; //将5的值传入到数组中,覆盖原有值。
说明: myarr[0][1] ,0 表示表的行,1表示表的列。
第四章流程控制语句
一、做判断(if语句)
语法:
if(条件)
{ 条件成立时执行代码}
二、二选一(if...else语句)
语法:
if(条件)
{ 条件成立时执行的代码}
else
{条件不成立时执行的代码}
三、多重判断(if..else嵌套语句)
语法:
if(条件1)
{ 条件1成立时执行的代码}
else if(条件2)
{ 条件2成立时执行的代码}
...
else if(条件n)
{ 条件n成立时执行的代码}
else
{ 条件1、2至n不成立时执行的代码}
四、多种选择(Switch语句)
语法:
switch(表达式)
{
case值1:
执行代码块 1
break;
case值2:
执行代码块 2
break;
...
case值n:
执行代码块 n
break;
default:
与 case值1 、 case值2...case值n 不同时执行的代码
}
五、重复重复(for循环)
for(初始化变量;循环条件;循环迭代)
{ 循环语句 }
例:
var num=1;
for (num=1;num<=6;num++) //初始化值;循环条件;循环后条件值更新
{ document.write("取出第"+num+"个球<br />");
}
六、反反复复(while循环)
while语句结构:
while(判断条件)
{ 循环语句 }
例:
var num=0; //初始化值
while (num<=6) //条件判断
{
document.write("取出第"+num+"个球<br />");
num=num+1; //条件值更新
}
七、来来回回(Do...while循环)
语句结构:
do
{循环语句}
while(判断条件)
例:
num= 1;
do
{
document.write("数值为:" + num+"<br/>");
num++; //更新条件
}
while (num<=5)
八、退出循环break
格式如下:
for(初始条件;判断条件;循环后条件值更新)
{
if(特殊情况)
{break;}
循环代码
}
九、继续循环continue
continue的作用是仅仅跳过本次循环,而整个循环体继续执行。
语句结构:
for(初始条件;判断条件;循环后条件值更新)
{
if(特殊情况)
{continue; }
循环代码
}
第六章事件响应主要事件表:<br>
一、onclick:"鼠标单击事件";<br>
onmouseover:"鼠标经过事件";<br>
onmouseout:"鼠标移开事件";<br>
onchange:"文本框内容改变事件";<br>
onselect:"文本框内容被选中事件";<br>
onfocus:"光标聚焦";<br>
onblur:"光标离开";<br>
onload:"网页导入";<br> 注意:1.事件会在页面加载完成后,立即发生,同时执行被调用的程序。
2. 加载页面时,触发onload事件,事件写在<body>标签内。
onunload:"关闭网页"。<br>
第七章对象
一、对象
javascript中的所有事物都是对象,如:字符串,数值,数组,函数等,每个对象都有属性和方法.
(1) 对象的属性: 反映该对象某些特定的性质.如:字符串的长度,图像的长宽等;
访问对象属性的语法: ObjectName.propertypeName
(2) 对象的方法: 能够在对象上执行的动作,如:表单的提交方法,时间的获取(getYear)等.
访问对象的方法:objectName.methodName();
二、返回/设置年份方法
get/setFullYear()返回/设置年份,用四位数表示。
例:var mydate=new Date(); //当前时间Tue Aug 30 201617:07:14 GMT+0800 (中国标准时间)
document.write(mydate+"<br>");//输出当前时间
document.write(mydate.getFullYear+"<br>")//输出当前年份
mydate.setFullYear(81); //设置年份
document.write(mydate+"<br>");//输出年份被设定为0081年。
注意:不同浏览器,mydate.setFullYear(81)结果不同,年份设定为0081或81两种情况。
三、返回星期方法
getDay() 返回星期,返回的是0-6的数字,0 表示星期天。如果要返回相对应“星期”,通过数组完成
四、返回/设置时间方法
get/setTime() 返回/设置时间,单位毫秒数
例:
var mydate=new Date();
document.write("当前时间:"+mydate+"<br>");
mydate.setTime(mydate.getTime() + 60 * 60 * 1000);
document.write("推迟一小时时间:" + mydate);
五、sring字符串对象
例:var myarray=new Array(6);//定义数组对象
var myl=myarray.length;//访问数组长度length属性
例:var mystr="Hello world!";//创建一个字符串
var request=mystr.toUpperCase(); //使用字符串对象方法,转换为大写(小写toLowerCase)
六、返回指定位置的字符
语法:
stringObject.charAt(index)
注意:
1.一个空格也算一个字符;
2.字符串的第一个下标是从0开始,最后一个字符的下边是string.length-1;(所以上面括号里的!的下标是10)
3.如果参数index不在0与string.length-1之间,该方法将返回一个空字符串。
七、返回指定的字符串首次出现的位置
语法
stringObject.indexOf(substring, startpos)
例:var str="I love JavaScript!"
document.write(str.indexOf("I") + "<br />");
document.write(str.indexOf("v") + "<br />");
document.write(str.indexOf("v",8));
以上代码的输出:
0 4 9
八、字符串分割split()
split() 方法将字符串分割为字符串数组,并返回此数组
语法:
stringObject.split(separator,limit)
例:
var mystr = "www.imooc.com";
document.write(mystr.split(".")+"<br>");
document.write(mystr.split(".",2)+"<br>");
运行结果:
www,imooc,com
www,imooc
例:分割为字符:
document.write(mystr.split("")+"<br>");
document.write(mystr.split("",5));
运行结果:
w,w,w,.,i,m,o,o,c,.,c,o,m
w,w,w,.,i
九、提取字符串substring()
substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法:
stringObject.substring(starPos,stopPos)
例:
var mystr="I love JavaScript";
document.write(mystr.substring(7));
document.write(mystr.substring(2,6));
运行结果:
JavaScript
love
注意:
1. 返回的内容是从 start开始(包含start位置的字符)到 stop-1 处的所有字符,其长度为stop 减start。
2. 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
3. 如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。
十、提取指定数目的字符substr()
substr() 方法从字符串中提取从startPos位置开始的指定数目的字符串。
语法:
stringObject.substr(startPos,length)
例:
var mystr="I love JavaScript!";
document.write(mystr.substr(7));
document.write(mystr.substr(2,4));
</script>
运行结果:
JavaScript!
love
注意:如果参数startPos是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
如果startPos为负数且绝对值大于字符串长度,startPos为0。
十一、Math对象
十二、向上取整ceil()
ceil() 方法可对一个数进行向上取整。
语法:
Math.ceil(x)
例:
document.write(Math.ceil(0.8) + "<br />")
document.write(Math.ceil(5) + "<br />")
document.write(Math.ceil(-5.9))
运行结果:
1 5 -6
十三、向下取整floor()
floor() 方法可对一个数进行向下取整。
语法:
Math.floor(x)
十四、四舍五入round()
例:
document.write(Math.round(1.6)+ "<br>");
document.write(Math.round(2.5)+ "<br>");
document.write(Math.round(-6.5)+ "<br>");
document.write(Math.round(-6.6));
</script>
运行结果:
2 3 -6 -7
注意:四舍六入五变大
十五、随机数 random()random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数。语法:Math.random();例:document.write(Math.random())//注意:返回一个大于或等于 0 但小于 1 的符号为正的数字值。运行结果:0.190305486195328
获得0 ~ 10之间的随机数,代码如下:
document.write((Math.random())*10);
十六、Array 数组对象
数组属性:length 用法:<数组对象>.length;返回:数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。数组方法:
十七、数组连接concat()concat() 方法用于连接两个或多个数组。此方法返回一个新数组,不改变原来的数组。语法arrayObject.concat(array1,array2,...,arrayN)
例:
var mya1= new Array("hello!") var mya2= new Array("I","love"); var mya3= new Array("JavaScript","!"); var mya4=mya1.concat(mya2,mya3); document.write(mya4);
运行结果:hello!,I,love,JavaScript,!
十八、指定分隔符连接数组元素join()语法:arrayObject.join(分隔符)
例:
var myarr = new Array(3) myarr[0] = "I"; myarr[1] = "love"; myarr[2] = "JavaScript"; document.write(myarr.join("."));运行结果:I.love.JavaScript
十九、颠倒数组元素顺序reverse()语法:arrayObject.reverse()
<span style="font-size:12px;"> var myarr = new Array(3)
myarr[0] = "1"
myarr[1] = "2"
myarr[2] = "3"
document.write(myarr + "<br />")
document.write(myarr.reverse())
运行结果:
1,2,3
3,2,1</span>
二十、选定元素slice()
slice() 方法可从已有的数组中返回选定的元素。
语法
arrayObject.slice(start,end)
例:
<span style="font-size:12px;">var myarr1= ["我","很","爱","你"];
document.write(myarr1.slice(1,3));
结果:很,爱</span>
二十一、数组排序sort()sort()方法使数组中的元素按照一定的顺序排列。
语法:
arrayObject.sort(方法函数)
<span style="font-size:12px;">1.使用sort()将数组进行排序,代码如下:
var myarr2 = new Array("80","16","50","6","100","1");
document.write(myarr2.sort());
运行结果:
1,100,16,50,6,80</span>
<span style="font-size:12px;">注意:上面的代码没有按照数值的大小对数字进行排序。
2.如要实现这一点,就必须使用一个排序函数,代码如下:
function sortNum(a,b) {
return a - b;
//升序,如降序,把“a - b”该成“b - a”
}
var myarr = new Array("80","16","50","6","100","1");
document.write(myarr.sort(sortNum));
</script>
运行结果:
1,6,16,50,80,100</span>
编程练习
任务
第一步:可通过javascript的日期对象来得到当前的日期。
提示:使用Date()日期对象,注意星期返回值为0-6,所以要转成文字"星期X"
第二步:一长窜的字符串不好弄,找规律后分割放到数组里更好操作哦。
第三步:分割字符串得到分数,然后求和取整。
提示:parseInt() 字符串类型转成整型。
<script type="text/javascript">
var currentDate = new Date();
var weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
document.write(
currentDate.getFullYear() + "年" +
(currentDate.getMonth() + 1) + "月" +
currentDate.getDate() + "日" + " " +
weekday[currentDate.getDay()]
);
//成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦
var sorceStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var sourceArr = sorceStr.split(";");
//document.write(sourceArr);//test
//从数组中将成绩撮出来,然后求和取整,并输出。
var score = new Array();
var sum = 0;
for (var i = 0; i < sourceArr.length; i ++) {
sum += parseInt(sourceArr[i].substr(sourceArr[i].indexOf(":")+1)); // sum = sum + parseInt(scoreArr[i].slice(3,5));
//document.write("<br>" + sum);//test
}
document.write("--班级总分为:" + sum);
document.write(",班级平均分为(保留整数):" + Math.round(sum/sourceArr.length))
</script>
<span style="font-size:12px;"></span>