js基础-字符和日期
2019-12-27 16:03:27 来源:admin 点击:689
JavaScript数组
创建数组对象
创建一个数组对象
创建数组对象的3种方式:
1. new Array() 创建长度是0的数组
2. new Array(5); 创建长度是5的数组,,但是其每一个元素都是undefine
3. new Array(3,1,4,1,5,9,2,6); 根据参数创建数组
<script>
function p(s,v){
document.write(s+' '+v);
document.write("<br>");
}
var x = new Array(); //创建长度是0的数组
p('通过 new Array()创建一个空数组:',x);
x = new Array(5); //创建长度是5的数组,,但是其每一个元素都是undefine
p('通过 new Array(5)创建一个长度是5的数组:',x);//结果:通过 new Array(5)创建一个长度是5的数组: ,,,,
p('像new Array(5) 这样没有赋初值的方式创建的数组,每个元素的值都是:',x[0]);
x = new Array(3,1,4,1,5,9,2,6); //根据参数创建数组
p('创建有初值的数组new Array(3,1,4,1,5,9,2,6) :',x);
</script>
遍历一个数组
遍历有两种方式
1.结合for循环,通过下标遍历
2.使用增强for in循环遍历
需要注意的是,在增强for in中,i是下标的意思。
<script>
function p(s){
document.write(s);
document.write("<br>");
}
var x = new Array(3,1,4);
p('当前数组是:'+x);
p("使用普通的for循环遍历数组");
for(i=0;i<x.length;i++){ //普通for循环
p(x[i]);
}
p("使用增强for循环遍历数组");
for(i in x){ //for in 循环
p(x[i]);
}
</script>
通过指定分隔符,返回一个数组的字符串表达
方法join()通过指定分隔符,返回一个数组的字符串表达
<script>
function p(s){
document.write(s);
document.write("<br>");
}
var x = new Array(3,1,4);
p('数组x是:'+x);
var y = x.join();
p('y = x.join() 得到的是数组x的字符串表达,其值是'+y+" 其类型是 :" +(typeof y));
var z = x.join("@");
p('z = x.join("@");是x的字符串表达,不过分隔符不是默认的"," 而是"@" : '+z);
</script>
数组x是:3,1,4
y = x.join() 得到的是数组x的字符串表达,其值是3,1,4 其类型是 :string
z = x.join("@");是x的字符串表达,不过分隔符不是默认的"," 而是"@" : 3@1@4
分别在最后的位置插入数据和获取数据(获取后删除)
方法push、pop,分别在最后的位置插入数据和获取数据(获取后删除)
就像先入后出的栈一样
<script>
function p(s){
document.write(s);
document.write("<br>");
}
var x = new Array(3,1,4);
p('数组x是:'+x);
x.push(5);
p('向x中push 5,得到 ' + x);
var e = x.pop();
p('从x中pop一个值出来,其值是 ' + e);
p('pop之后,x数组的值是:'+x);
</script>
分别在最开始的位置插入数据和获取数据(获取后删除)
方法unshift、shift ,分别在最开始的位置插入数据和获取数据(获取后删除)
<script>
function p(s){
document.write(s);
document.write("<br>");
}
var x = new Array(3,1,4);
p('数组x是:'+x);
x.unshift (5);
p('对数组 unshift 值5(在最前面加),数组变为:' + x);
var e = x.shift ();
p('从数组中 shift 一个数(从最前面取),其值是:' + e);
p('shift之后,数组变为:' + x);
</script>
对数组的内容进行排序
方法 sort对数组的内容进行排序
<script>
function p(s){
document.write(s);
document.write("<br>");
}
var x = new Array(3,1,4,1,5,9,2,6);
p('数组x是:'+x);
x.sort();
p('使用sort排序后的数组x是:'+x);
</script>
自定义排序算法
sort()默认采用正排序,即小的数排在前面。 如果需要采用自定义排序的算法,就把比较器函数作为参数传递给sort()。
比较器函数:
function comparator(v1,v2){
return v2-v1; //v2-v1表示大的放前面,小的放后面
}
调用sort函数的时候,把这个比较器函数comparator作为参数传递进去即可
x.sort(comparator);
数组内容反转
方法 reverse,对数组的内容进行反转
获取子数组
方法 slice 获取子数组
注意: 第二个参数取不到
删除和插入元素
方法 splice (不是 slice) 用于删除数组中的元素
奇葩的是 ,它还能用于向数组中插入元素
<script>
function p(s){
document.write(s);
document.write("<br>");
}
var x = new Array(3,1,4,1,5,9,2,6);
p('数组x是:'+x);
x.splice (3,2);//从位置3开始 ,删除2个元素
p('x.splice (3,2) 表示从位置3开始 ,删除2个元素:'+x);
x.splice(3,0,1,5);
p('x.splice(3,0,1,5) 从位置3开始,删除0个元素,但是插入1和5,最后得到:'+x);
</script>
JavaScrip日期
创建日期对象
通过new Date创建一个日期对象,这个对象就表示当前日期(现在)
<script>
var d = new Date();
document.write('new Date():'+d);
</script>
new Date():Fri Aug 02 2019 17:42:55 GMT+0800 (中国标准时间)
年/月/日/时/分/秒/毫秒
getMonth()返回的月数,是基零的,0代表1月份
d.getFullYear()/getMonth()+1/getDate()/getHours()/getMinutes()/getSeconds()/getMilliseconds()
一周的第几天
通过getDay()获取,今天是本周的第几天
与getMonth()一样,返回值是基0的。
<script>
var day=new Date().getDay(); //通过日期对象获取数字形式的星期几
var weeks = new Array("星期天","星期一","星期二","星期三","星期四","星期五","星期六");
document.write("今天是 : "+weeks[day]);
</script>
经历的毫秒数
<script>
var time = new Date().getTime();
document.write("从1970/1/1 08:00:00 到今天的毫秒数: "+ time);
</script>
修改日期和时间
<script>
var d=new Date();
document.write("修改日期对象的值为世界末日:<br>");
d.setFullYear(2012);
d.setMonth(11); //月份是基0的,所以11表示12月
d.setDate(12);
d.setHours(0);
d.setMinutes(0);
d.setSeconds(0);
document.write(d);
</script>