日期对象、字符串对象
一、对象
- 对象的概念:在JavaScript中一切内容都可以被抽象为对象
- 包装对象:将基础类型包装为对象类型
- 对象:
- 属性 特点 变量
- 方法 功能 函数
- 内置对象:Date Array String RegExp …
- 对象:
二、日期
- Date是JavaScript中为日期和时间的使用而封装的一个对象
1.使用
var date = new Date();//获取当前时间对象
2.常用方法
获取年月日 时分秒 星期值
-
var diff = d.getTime() //当前时间距离1970年的时间间隔 单位ms var d=new Date(); //创建一个Date对象的实例 当前时间 console.log(d);//对象实例 //Tue Aug 25 2020 19:08:56 GMT+0800 (中国标准时间) //年月日 var y=d.getFullYear(); var m=d.getMonth()+1;//0-11 var day=d.getDate(); var week=d.getDay(); console.log(y,m,d,week); //2020 8 25 2 var h=d.getHours(); var minute=d.getMinutes(); var s=d.getSeconds(); console.log(h,m,s); //19 8 17 var time=y+"年"+m+"月"+day+"日 "+h+":"+minute+":"+s; document.write(time); //2020年8月25日 19:5:41
- 注意:获取到的月份比真实值小1
- 设置方法:月份比真实值小1
3.获取指定日期对象
//做法一:
var d1=new Date("2020/8/26 12:00:00");
//获取指定日期对象
//做法二
var d2=new Date(2020,8,26,12);//9月
console.log(d2);
//做法三:
var d=new Date();
d.setFullYear(2021);
d.setMonth(7);//八月
d.setDate(26);
d.setHours(12);
d.setMinutes(0);
d.setSeconds(0);
console.log(d);
4.倒计时案例
var box1 = document.getElementsByClassName('box1')[0];
function run() {
var d = new Date(2020, 7, 26, 12);
//获取指定时间对象
var dn = new Date();
//获取当前时间对象
console.log(d - dn);
//求出差值
var jiange = (d - dn) / 1000;
var shi = parseInt(jiange / 3600);
console.log(shi);
shi = shi < 10 ? "0" + shi : shi;
var fen = parseInt((jiange - shi * 3600) / 60);
console.log(fen);
fen = fen < 10 ? "0" + fen : fen;
var miao = parseInt(jiange - shi * 3600 - fen * 60);
console.log(miao);
miao = miao < 10 ? "0" + miao : miao;
box1.innerHTML = shi + "时" + fen + "分" + miao + "秒";
setTimeout(run, 1000);
}
run();
5.moment.js
- moment.js是一个轻量级的JavaScript时间库,它方便了日常开发中对时间的操作,提高了开发效率
var d=moment();//Moment库对象
console.log(d);
var date=d.format("YYYY-MM-DD");
var date=d.format("YYYY/MM/DD");
var date=d.format("YYYY年MM月DD日");
var date=d.format("YYYYMMDD");
var date=d.format("YYYY某年MM某月DD某日");
var date=d.format("YYYY-MM-DD hh:mm:ss");
console.log(date);
var d=moment("20110825", "YYYYMMDD").fromNow();
console.log(d);
//2011年8月25号距离现在的年份 9 years ago
var d1=moment().subtract(30, 'days').calendar();
console.log(d1);
//30天前的日期 07/26/2020
//format() 需要传递一个格式化算子
/*
Y 年
M 月
D 日
h 小时
m 分钟
s 秒
YYYY-MM-DD 2020-08-25
*/
三、字符串对象
字符串自身不能被修改
- 创建字符串对象
new String(‘abc’); 对象
var s=’abc’; 字符串 - 字符串也有索引
var str=‘hello’;
console.log(str[0]);/h - 字符串遍历:
for循环 - 字符串和数组有很多相似地方
数组可以被修改,但是字符串不可以被修改 - 属性:
length 字符串中字符的个数 (长度) - 常用方法:
charAt() 根据索引找到指定字符
concat() 拼接字符串
String.fromCharCode(code) 根据编码获取字符
indexOf() 获取指定字符在字符串中的位置 只取第一个位置 若不包含 -1
lastIndexOf() 从后向前搜索
match() 匹配指定字符,保存在数组中 默认:只取第一个
replace() 替换字符串 只替换第一个
search() 查找,只找第一个
slice(start,end) 分割字符串 [start,end)
substr(start,length) 分割字符串
substring(start,stop) 分割字符串 [start,stop)
toLowerCase() 小写字母
toUpperCase() 大写字母
split 可以根据指定字符来分割字符串,返回值 数组
trim() 去除字符串首尾空格
var str = new String("hello");
var s = str.charAt(0);//返回指定位置的字符串
var s = str.charCodeAt(0)//返回指定位置字符的Unicode编码
var s = str.concat('你好');//拼接字符串
var s = str.concat('你好','我好','大家好');//可以连着拼接多个
var s = String.fromCharCode(97);//根据编码获取字符
var s = str.indexOf('l');//获取指定字符在字符串中的位置,只取第一个
var s = str.indexOf('a');//如果没有指定字符,为-1
var s = str.lastIndexOf('l')//获取指定字符在字符串中的位置,只取一个,从后向前找,如果没有指定字符,为-1
var s = str.link("https://www.baidu.com");//添加超链接
document.write(s);
var s = str.match('l');//从字符串获取指定字符串,保存在数组中,默认只取第一个
var s = str.replace('l','*');//替换字符串中指定的字符,默认只取第一个
var s = str.search('l');//从字符串获取指定字符串的位置,保存为number
var s = str.slice(0,3);//截取指定字符串片段,slice(start,end),可以是负数
var s = str.slice(-4);//从倒数第四个到最后一个
var s = str.slice(-4,-1);//从倒数第四个到倒数第二个
var s = str.slice(0);//复制整个字符串
var s = str.substr(0,4);//获取指定长度字符串片段,substr(start,length)
var s = str.substr(0);//复制整个字符串
s = str.substring(1,4);//获取指定字符串片段,substring(start,stop)
var s = str.substring(0);//复制整个字符串
var str1 = new String('dsajkhcJJJSIJDJ');
var s = str1.toLowerCase();//转换为小写
var s = str1.toUpperCase();//装换为大写
var str2 = "nidjd$djsadj$sdj$ds";
var s = str2.split('$');//根据指定的字符分割字符串,并返回数组
var s = str2.split('');//根据空字符分割字符,并返回数组
var str3 = " he llo ";
var s = str3.trim();//去除字符串首尾空格
console.log(s,typeof s);