JS内置对象

日期对象常用方法和插件

  • 创建日期对象
  • 日期常用方法
  • 日期函数应用
  • 日期函数库 moment.js

创建日期的3种方式

    // 方式1: 无参数
    let date = new Date()

    // 参数为日期数字的字符串
    let date2 = new Date('2022-12-01 00:00:00')

    // 参数为0,表示1970-01-01 08:00:00
    let date3 = new Date(0)

    // 参数为距离1970年的毫秒数,1970-01-02
    var date4 = new Date(86140000)

日期常用方法

  • new Date()

  • getFullYear()

  • getMonth() + 1

  • getDate()

  • getHours()

  • getMinutes()

  • getSeconds()

  • getDay()

  • getTime()

  • Date.now()

var date = new Date();
var Y = date.getFullYear(); // 年
var M = date.getMonth(); // 月份
var D = date.getDate(); // 日
var h = date.getHours(); // 时
var m = date.getMinutes(); // 分
var s = date.getSeconds(); // 秒
var d = date.getDay(); // 星期
var time = date.getTime(); // 1970到现在的毫秒数
var time2 = Date.now(); // 同上
console.log('年',Y);
console.log('月',M+1);
console.log('日',D);
console.log('时',h);
console.log('分',m);
console.log('秒',s);
console.log('星期',d);
console.log('毫秒数',time);
console.log('毫秒数',time2);

日期函数应用

  1. 格式化日期
/**
 * str可以是日期字符串,可以是毫秒数, 可以不传
 */
function formatDate(str) {
  var date;
  if (!str) {
    date = new Date();
  } else {
    date = new Date(str);
  } 
  var Y = date.getFullYear();
  var M = date.getMonth()+1;
  var D = date.getDate();
  var h = date.getHours();
  var m = date.getMinutes();
  var s = date.getSeconds();
  M = M<10?`0${M}`:M;
  D = D<10?`0${D}`:D;
  h = h<10?`0${h}`:h;
  m = m<10?`0${m}`:m;
  s = s<10?`0${s}`:s;
  return `${Y}${M}${D}${h}:${m}:${s}`
}
var date1 = formatDate();  // 不传参数
console.log('date1',date1);
var date2 = formatDate('2020-11-11 11:11:11');  // 传日期字符串
console.log('date2',date2);
  1. 比较日期
var oDate = new Date('2001-10-06');
var yDate = new Date('2001-11-17');
console.log(oDate-yDate); // -3628800000

Math 对象

常用方法

  • Math.round(x) // 四舍五入
  • Math.abs(x) // 求 x 的绝对值
  • Math.floor(x) // 向下取整
  • Math.ceil(x) // 向上取整
  • Math.random() // 随机数
  • 其它:正弦、余弦、平方根...

相关方法

  • toFixed(x) 保留x位小数
  • parseInt 把小数变整数

字符串常用方法

  • length // 字符串的长度
  • trim() // 去掉字符串前后的空格
  • split() // 字符串转数组,接收一个参数,作为转换的标志

截取字符串

  • substring() // 截取字符串,接收两个参数,开始的位置和结束的位置
  • slice() // 截取字符串, 用法类似substring, 但可以复数
  • substr() // 截取字符串, 接收两个参数,第一个参数是开始位置, 第二个参数是截取的字符个数

检测字符串

  • charAt() // 下标对应的字符, 若没有返回空
  • indexOf() // 返回检测字符串的位置
  • lastIndexOf() // 同上,但从后面开始检查
  • includes() // 检查字符串是否包含指定字符
  • toLowerCase() // 转小写字母
  • toUpperCase() // 转大写字母
  • match() // 检查有没有包含某个值, 返回符合一个数组,存放符合条件的字符
  • replace() // 替换
// 1.字符串长度和下标
var str1 = 'abcdef'; 
console.log('str1长度:', str1.length);
console.log('第1个字符:',str1[0]);
console.log('最后1个字符:',str1[str1.length-1]);

// 2.去空格
var str2 = ' asdfasdfas ';
console.log('str2长度',str2.length);
var newStr2 = str2.trim();
console.log('新字符串的长度',newStr2.length);

// 3.转数组
var str3 = '张三,李四,王五';
var arr3 = str3.split(',');
console.log('arr3',arr3);
str3 = 'asdfjal;sjfasjkf;asjfl;asjkdfl;ak';
arr3 = str3.split('a');
console.log('arr3',arr3);
  1. 截取字符串

  2. substring(不常用)

  3. slice(常用)
  4. substr 第二个参数为截取个数
var str = '13812345678';
var str1 = str.substring(2,5); // 812
console.log('str1',str1);

var str2 = str.slice(2,5);
console.log('str2',str2);
str2 = str.slice(2,-1);  // 从2开始, -1表示倒数第一个
console.log('str2负数',str2);
str2 = str.slice(2);
console.log('str2一个参数',str2);
str2 = str.slice(-4);
console.log('str2一个负数参数',str2);

var str3 = str.substr(2,5);
console.log('substr',str3);
  1. 检测字符串
// 1.charAt
var str = 'abcdefgabcdefg';
var str1 = str.charAt(2);
// var str1 = str.charAt(10);
console.log('str1',str1);

// 2.includes
var boo2 = str.includes('a'); // true
var boo2 = str.includes('x'); // false
console.log('boo2',boo2);

// 3. indexOf
var index3 = str.indexOf('b'); // 1
var index3 = str.indexOf('bb'); // -1
console.log('index3',index3);

// 4.lastIndexOf
var index4 = str.indexOf('f'); // 5
var index4 = str.lastIndexOf('f'); // 12
console.log('index4',index4);
  1. 小写和大写字母, match, replace
var str = 'myName,myAge';
var str1 = str.toLowerCase(); 
console.log('str1',str1);

var str2 = str.toUpperCase();
console.log('str2',str2);

// 3.match
var str3 = str.match('my'); // 匹配
var str3 = str.match('ny'); // null
console.log('str3',str3);

str3 = str.match(/Name/);
console.log('str3正则',str3);
str3 = str.match(/my/g);
console.log('str3正则',str3);

// 4.replace
var str4 =  str.replace('my','you');
console.log('str4',str4);
str4 = str.replace(/my/g,'you');
console.log('str4正则',str4);

results matching ""

    No results matching ""