学习JavaScript第三天,继续朝着万元高薪进发。
学习JavaScript并不能单纯的死记硬背,也不能一直按着代码一直写,虽然很重要,但是更重要的是理解他的意思,你要实现一个功能应该怎么写。现在一直摸索着,希望以后学习好了能把经验带给大家,一起加油。
(什么是数组)
我们知道变量用来存储数据,一个变量只能存储一个内容。
但是一个数组变量可以存放多个数据。
数组是一个值的集合,每个值都有一个索引号,从0开始。
我们还可以用简单的方法创建上面的数组和赋值:
var myarray = new Array(66,80,90,77,59);//创建数组同时赋值。
var myarray = [66,80,90,77,59];//直接输入一个数组(称 “字面量数组”)
<script type="text/javascript">
var myarr = new Array();//创建新的数组
myarr[0] = "小米";
myarr[1] = 80;
myarr[2] = 20;
document.write(myarr[0] + "<br>");
document.write(myarr[1] + "<br>");
document.write(myarr[2] + "<br>");
</script>
(数组属性length)
如果我们想知道数组的大小,只需引用数组的一个属性length。Length属性表示数组的长度,即数组中元素的个数。
length属性会经常用到,所以一定要深刻了解。
myarray.length;
//获得数组myarray的长度
注意:因为数组的索引总是由0开始,所以一个数组的上下限分别是:0和length-1。如数组的长度是5,数组的上下限分别是0和4。
二维数组
- 二维数组的定义方法一
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
}
}- 二维数组的定义方法二,直接赋值
var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3]]
例子:
<script type="text/javascript">
var myarr = new Array();
for(var i=1; i<3; i++){
myarr[i] = new Array();
for(var j=1; j<4; j++){
myarr[i][j]=i*j;
document.write("myarr["+i+"]["+j+"]的值:"+myarr[i][j]+"<br>");
}
}
</script>
这个例子就是先声明一维数组,并且让它小于3的时候自增,然后定义二维数组,并且让它小于4的时候自增,再让【i】【j】每个组合相乘,得出结果。
简单的数组编程练习:
<script type="text/javascript">
//创建数组
var myarr = ["*","##","***","&&","****","##"];
myarr[7] = "**";
//显示数组长度
var arr = ["*","**","***","****"];
document.write(myarr[0] + "<br/>");
document.write(myarr[7] + "<br/>");
document.write(myarr[2] + "<br/>");
document.write(myarr[4] + "<br/>");
document.write(arr.length + "<br/>");
//将数组内容输出,完成达到的效果。
for(var j=0;j<arr.length;j++){
document.write(arr[j] + "<br/>");
}
</script>
这里写了两种最简单的表达式,一种很费力的输出每个数组,很麻烦,一种是通过length长度,用for循环显示,方便很多。注意,数组从0开始。
多重判断(if..else嵌套语句)
语法:
if(条件1)
{ 条件1成立时执行的代码}
else if(条件2)
{ 条件2成立时执行的代码}
...
else if(条件n)
{ 条件n成立时执行的代码}
else
{ 条件1、2至n不成立时执行的代码}
<script type="text/JavaScript">
var myage =99;//赵红的年龄为99
if(myage<=44)
{document.write("青年");}
else if(myage<=59)
{document.write("中年人");}
else if (myage<=89)
{document.write("老年人");}
else
{document.write("长寿老年人");}
</script>
这些都是简单的语句,多熟悉就好。
多种选择(Switch语句)
当有很多种选项的时候,switch比if else使用更方便。
语法:switch(表达式)
{
case值1:
执行代码块 1
break;
case值2:
执行代码块 2
break;
...
case值n:
执行代码块 n
break;
default:
与 case值1 、 case值2...case值n 不同时执行的代码
}//这是一段字符串的写法。 <script type="text/JavaScript"> function swc(){ var pro = prompt("你喜欢撸啊撸吗?","你说呢"); switch(pro){ case "喜欢": case "非常喜欢": document.write("要多练习代码。"); break; case "一般": document.write("很好"); break; default: alert("想说明啥?喜欢?非常喜欢?或者一般?"); } } </script> <input type="button" value="你喜欢撸啊撸吗?" onclick="swc()">
重复重复(for循环)
我们有1,2,3...10不同面值的钱,使用for语句完成合计,看看我们一共有多少钱,请补充第8行代码,实现该功能。
<script type="text/JavaScript">
var mymoney,sum=0;//mymoney变量存放不同面值,sum总计
//等于:
//var mymoney;
//var sum = 0;
//即申明了两个变量, my money和sum。其中sum赋值为0.
for(mymoney=1;mymoney<=10;mymoney++)
{
sum= sum + mymoney;
}
document.write("sum合计:"+sum);
</script>
其实这里就等于1块钱+到10块钱的意思,你要求和。
sum = 0 + 1 sum就等于1.
sum = 1+2 sum就等于 3
如此类推,得到55
while循环
和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。
while语句结构:while(判断条件)
{
循环语句
}
<script type="text/javascript">
var num = 0; //初始化值
while(num<=5){ //条件判断
num = num +1; //条件值更新
document.write("取出第" + num + "个球" + "<br>");
}
</script>
(Do...while循环)
do while结构的基本原理和while结构是基本相同的,但是它保证循环体至少被执行一次。因为它是先执行代码,后判断条件,如果条件为真,继续循环。
do...while语句结构:do
{
循环语句
}
while(判断条件)
<script type="text/javascript">
var num =1;
do{
num = num + 1;//更新条件
document.write("数字:" + num + "<br>");
}
while(num<=10);
</script>
退出循环break
语法:
for(初始条件;判断条件;循环后条件值更新)
{
if(特殊情况)
{break;}
循环代码
}
<script type="text/JavaScript">
var arr = new Array(10,20,30,40,50);
for(var i=0;i<arr.length;i++){
if(arr[i]==30){
break;
}
document.write(arr[i] + "<br>");
}
</script>
继续循环continue
continue的作用是仅仅跳过本次循环,而整个循环体继续执行。
语句结构:
for(初始条件;判断条件;循环后条件值更新)
{
if(特殊情况)
{ continue; }
循环代码
}
<script type="text/JavaScript">
var mynum =new Array(70,80,66,90,50,100,89);//定义数组mynum并赋值
var i;
for(i=0;i<mynum.length;i++)
{
if(mynum[i]<60)
{
document.write("成绩不及格,不输出!"+"<br>");
continue;
}
document.write("成绩:"+mynum[i]+"及格,输出!"+"<br>");
}
</script>
编程练习
第一步: 把这些数据组成一个数组,方便我们之后操作哦。
提示: 使用二维数组。
第二步: 筛选数据吧,首先找出都是大一的所有信息 ;第三步: 最后再一次筛选上一步得到的数据,打印出都是女生的姓名 ;
<script type="text/javascript">
//第一步把之前的数据写成一个数组的形式,定义变量为 infos
var infos=[['小A','女','21','大一'],['小B','男','23','大三'],['小C','男','24','大四'],['小D','女','21','大一'],
['小E','女','22','大二'],['小F','男','21','大一'],['小G','女','22','大二'],['小H','女','20','大三'],
['小I','女','20','大一'],['小J','男','20','大三']];//第一步把之前的数据写成一个数组的形式,定义变量为 infos
//第一次筛选,找出都是大一的信息
var arr = new Array();//声明一个数组,用来装大一女生的信息
var n = 0;//声明一个变量,用来作为数组的下标
for(var i=0;i<infos.length;i++){
if(infos[i][3] == '大一'){
document.write(infos[i] + "<br>");//输出所以大一学生
arr[n] = infos[i];// => arr[0]=满足条件的大一学生
n++; //找到第一个满足条件的arr数组元素的时候,n会变成1,然后在返回for循环继续判断
//最后得到的结果,就是将所有大一学生的信息,封装到二维数组arr中去,
}
}
//第二次筛选,找出都是女生的信息
for(var j=0;j<arr.length;j++){
if(arr[j][1] == "女"){
document.write(arr[j][0] + "<br>");
}
}
</script>