javascript学习之三:数组和对象

复合数据类型和简单数据类型是不同的,因为他不仅可以保存一个值。符合数据类型有两种:数组和对象。

  • 数组(arryay):包含一个或多个其他的数据类型。
  • 对象(object):包含一个对象的一个引用。主要包含三个:String,Date,Math

String对象

创建

  • 显示创建:var myString=new String("xq");
  • 隐式创建:var myString="xq";
    方法

  • indexOf():查找并返回字符串的起始位置。

  • lastIndexOf():查找并发挥字符串的结束位置。
  • subString():返回字符串的输入的起始位置和结束位置的子字符串。 上面方法使用方法举例如下,这个例子用来返回姓名中的姓:
    1
    2
    3
    4
    5
    6
    7
    8
    
    <body>
      <script type="text/javascript">
      var name="hello, my name is xq, zhao."
      var indexOf=name.indexOf("xq");
      var firstName=name.substring(indexOf+4);
      document.write(firstName);
      </script>
     </body>
    

结果如下:

1
zhao.

Date对象

创建

1
2
3
4
5
6
<script type="text/javascript">
    //创建当前日期
    var today=new Date();
    //创建任意的日期,参数不必要全部填入
    var someDay=new Date("年","月","日","时","分","秒","微秒");
</script>

注意:javascript中月份是从0开始的,因此,8代表九月份

方法
Date中有很多方法可以用来设置和获取时间的具体数值,下面用例子的形式介绍常用的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<body>
  <script type="text/javascript">
	//创建一个新的时间
	var someDate=new Date("31 Jan 2003 11:59");
	//获取设置的时间的细节
	//获取分钟
	document.write("分="+someDate.getMinutes()+"<br>");
	//获取年份
	document.write("年="+someDate.getFullYear()+"<br>");
	//获取月份
	document.write("月="+someDate.getMonth()+"<br>");
	//获取日期
	document.write("日="+someDate.getDate()+"<br>");
	//设置分钟为33
	someDate.setMinutes(33);
	//获取设置后的分钟
	document.write("分="+someDate.getMinutes()+"<br>");
	//设置日期为32
	someDate.setDate(32);
	//获取设置日期后的时间
	//获取月份
	document.write("月="+someDate.getMonth()+"<br>");
	//获取日期
	document.write("日="+someDate.getDate()+"<br>");
	//设置日期为加30天
	someDate.setDate(someDate.getDate()+30);
	//获取设置日期后的时间
	//获取月份
	document.write("月="+someDate.getMonth()+"<br>");
	//获取日期
	document.write("日="+someDate.getDate()+"<br>");
  </script>
 </body>

运行结果如下:

1
2
3
4
5
6
7
8
9
分=59
年=2003
月=0
日=31
分=33
月=1
日=1
月=2
日=1

从以上结果可以看出,当设置日期为32的时候,javascript会自动判断当前月份不足32天,然后,满足当前月份后把剩余的天数加到下一个月份上。同样,当设置多少天以后,也会自动判断后增加到心相应的日期上,通过结果可以发现,javascript还可以自动判断2月份的天数。

Math对象

创建
Math对象无需初始化,可以直接使用。因此,也不能存放任何内容,而只是包含了一些方法。
方法

  • round():四舍五入
  • floor():向下舍入
  • ceil():向上舍入
  • random():产生一个0-1的随机数 下面通过示例具体介绍使用方法,该程序模拟投掷骰子所产生的点数:
    1
    2
    3
    4
    5
    6
    7
    8
    
    <body>
      <script type="text/javascript">
    	//产生0-5之间的随机数
    	var random=Math.random()*5;
    	//对随机数进行四舍五入,并+1,得到1-6之间的整数
    	var diceThrow=Math.round(random)+1;
    	document.write("你投的点数为"+diceThrow);
      </script>
    

数组

javascript允许我们使用一个数组来存储和访问相关的数据。一个数组有点像一行单元格(元素)。每个单元格存储一个独立的数数据项。
创建

1
2
3
4
5
6
7
8
9
10
//方法1.创建并且初始化
var myArray=new Array("1","2","3");
//方法2.创建一个空的数组
var myArray=new Array();
//填入数据
myArray[0]="1";
myArray[1]="2";
myArray[2]="3";
//方法3.简写创建并初始化数组数据
var myArray=["1","2","3"];


读取

1
2
//读取第一个元素
myArray[0]

数组对象的方法和属性

  • slice():截取数组的一段
    slice()拥有两个参数:片段中的第一个元素索引,它包含在截取片段中;片段中最后一个元素的索引,它不包含在片段中。例如要截取大小为5的数组的2,3,4个元素,需要指定的参数为1和4。但是最初的数组并未受到影响。
  • concat():链接两个数组
    Array对象的concat()方法允许链接数组。可以使用这个方法把两个或多个数组链接到一起,每个新数组在前面的数组结束的地方开始。
  • join():数组和字符创之间的相互转换
    当循环的读取某些数据的时候,把数据放到数组里是非常方便的。可是当需要把 数据转换到别的地方的时候,将数据转换成字符串是个不错的主意。可以用循环的方法把数组添加到字符串里面,其实,Array中的join()方法可以完成这一任务。这个方法需要一个字符串作为参数,这个字符串主要的用处是分割数组之间的元素。例如:
    1
    2
    3
    4
    5
    6
    7
    
    <body>
      <script type="text/javascript">
    	var myArray=["xh","xq","xm"];
    	var string=myArray.join("-");
    	document.write(string);
      </script>
     </body>
    


结果如下:

1
xh-xq-xm
  • sort():数组排序
    sort()方法允许将数组中的数据项按照字母或数字顺序进行排序。
    1
    2
    3
    4
    5
    6
    
    <script type="text/javascript">
    	var myArray=["xh","xq","xm"];
    	myArray.sort();
    	var string=myArray.join("-");
    	document.write(string);
      </script>
    


结果为:

1
xh-xm-xq


在上一个例子中加入sort()后,从结果就可以看出。已经按照了字母顺序。

我的新博客:后来者xq

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值