美文网首页
第2章 JavaScript的字符串,数组和日期

第2章 JavaScript的字符串,数组和日期

作者: yangsg | 来源:发表于2019-04-28 10:43 被阅读0次

1. 字符串

在JS中,字符串数据使用"xxx"或者'xxx'来表示。对于字符串类型的数据,可以通过一些API进行相关的操作。
字符串对象进行==比较时,与Java不同的是,JS中==比较的是字符串的内容是否一致

1.1 length属性

获取字符串数据的字符个数(英文,符号,中文,数字)都算一个字符

var str = 'haha,哈哈,123';
alert(str.length); //11
1.2 charAt(n)

获取位置n的字符

var str = "abcdefg";
alert(str.charAt(1)); //b
1.3 indexOf(s)和lastIndexOf(s)

查找s在字符串中第一次或最后一次出现的位置,如果没有找到返回-1

var str = "abcddcba";
alert(str.indexOf("b")); //1
alert(str.lastIndexOf("b")); //6
alert(str.indexOf("x")); // -1
alert(str.indexOf("dd")); //3
1.4 split(s)

利用s作为分隔符,将字符串分割为字符数组

var str = "a,b,c,d";
var x = str.split(","); //[a,b,c,d]
for(var i = 0; i < x.length; i++){
    alert(x[i]);
}
1.5 substr(n1, len)

从n1位置起,截取len个字符

var str = "abcdefg";
var s = str.substr(2,3); //cde
1.6 substring(n1, n2)和substring(n1)

从n1位置起,截取至n2位置[n1,n2),如果没有n2参数,认为截取到结尾。

var str = "abcdefg";
var s1 = str.substring(2,3); //c
var s2 = str.substring(2); //cdefg
1.7 toLowerCase()和toUpperCase()

将字符串转换成全部小写或全部大写

var str = "AbcdEfg";
var s1 = str.toLowerCase(); //abcdefg
var s2 = str.toUpperCase(); //ABCDEFG

2. 数组(Array)

2.1 Array的特点

JS中的数组可以理解为是Java中数组与List集合的结合,它拥有两者的优势

  • 可以向Java数组的方式一样,通过直接访问下标操作数组的元素
a[0] = 32;
alert(a[5]);
  • 拥有Java集合的特点,JS数组不是定长的,长度随着元素增加减少而变化
alert(a.length); //得到的是数组中元素的个数
2.2 数组的声明和初始化

可以三种方式声明并初始化一个数组

  • 创建一个没有内容的空数组,此时数组的length为0
var a = new Array();
  • 创建一个长度是15的数组,此时数组的length为0
var a = new Array(15);
  • 创建一个拥有特定内容的数组,此时数组的length为5
var a = new Array('1','2','3','A','B');
2.3 length属性

得到数组中当前元素的个数,返回是一个number类型数据

var a = new Array();
var len = a.length;

示例:数组中可以越过元素进行赋值

var a = new Array();
a[2] = 32;   //没有错误,认为a[0]和a[1]是空的(undefined)
alert(a.length);// 3
2.4 数组的访问

直接通过下标访问和操作数组中某个位置的元素。

var a = new Array(23,12,45,8,36,27,17);
alert(a[2]); //访问了下标是2的元素
a[0] = 0; //将下标为0的元素的内容更改为0
2.5 push(e)

相当于Java中List集合的add(Object e)方法
push(e)方法:将参数e放入到数组的结尾

var a = new Array();
a.push(32);
a.push(15);
a[3] = 45;
alert(a);  //32,15,,45
a.push(16);
alert(a); //32,15,,45,16
2.6 pop()和shift()

删除并返回数组结尾元素(pop)或第一个元素(shift)

var a = new Array(23,12,45,8,36,27,17);
alert(a);
var b = a.pop();
alert("b:"+b);  //17
alert(a); 

var c = a.shift();
alert("c:"+c); //23
alert(a);
2.7 sort()和reverse()

相当于Java中Collections类中的sort方法和reverse方法

  • sort() 提供了数据的字符串自然排序(升序排序)
var a = new Array(23,12,45,8,36,27,17);
alert(a); //23,12,45,8,36,27,17
a.sort();
alert(a); //12,17,23,27,36,45,8
  • reverse() 提供数据的反转
var a = new Array(23,12,45,8,36,27,17);
alert(a); //23,12,45,8,36,27,17
a.reverse();
alert(a); //17,27,36,8,45,12,23

3. 日期

JS的Date对象可以参考Java中的java.util.Date类理解,产生的是一个描述时间的对象。

3.1 创建描述当前时间的日期对象
var d = new Date();
3.2 获取时间
var d = new Date();
alert("年:"+d.getFullYear());   //四位数年
alert("月:"+(d.getMonth()+1)); //月份,数值比实际少1
alert("日:"+d.getDate()); //日
alert("时:"+d.getHours()); //时
alert("分:"+d.getMinutes()); //分
alert("秒:"+d.getSeconds()); //秒
alert("星期:"+d.getDay());  //0-6  日-六
3.3 设置时间
var d = new Date();
d.setFullYear(1996);
d.setMonth(9);
d.setDate(10);
d.setHours(23);
d.setMinutes(15);
d.setSeconds(0);

//1996-10-10 23:15:0
alert(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()); 

相关文章

网友评论

      本文标题:第2章 JavaScript的字符串,数组和日期

      本文链接:https://www.haomeiwen.com/subject/slprnqtx.html