javascript中的对象分为3种:自定义对象(数据类型中的对象)、内置对象、浏览器对象。
内置对象:指javascript语言自带的一些对象,供开发者使用,提供了一些常用、最基本、必要的功能(属性和方法)。
存在隐式类型转换 会把字符类型转换成数字类型。
min() 最小值
Math.min(10,-5,30,42); /* -5 返回最小值 内有非数字则返回NAN 若没有数值则返回-Infinity(负无穷) */
max() 最大值
Math.max(10, 20, 9, 52); /* 52 返回最大值 内有非数字则返回NAN 若没有数值则返回Infinity(无穷) */
PI 圆周率
console.log(Math.PI); /* π 3.141592653589793 */
floor() 向下取整
Math.floor(3.92); /* 3 */
ceil() 向上取整
Math.ceil(4.2); /* 5 */
round() 四舍五入
Math.round(1.1); /* 1 */
Math.round(-1.5); /* -1 默认往大数取值 */
Math.round(3.5); /* 4 */
abs() 绝对值
Math.abs('-10'); /* 10 */
random() 随机数
Math.random(); /* 0.16164873018534442 返回0-1之间的随机小数 取值范围:0<=X<1 */
Math.floor(Math.random() * (10 - 1 + 1) + 1); /* 取值1-10之间的整数,包括1和10 */
Math.floor(Math.random() * (10 - 1) + 1); /* 取值1-10之间的整数,不包括10 */
Math.floor(Math.random() * (max - min) + min); /* 公式 */
基本使用
/* new Date() 声明一个时间函数 */
let tinghua = new Date(2020, 10, 01); /* 一种传参格式 Sun Nov 01 2020 00:00:00 GMT+0800 (中国标准时间) */
let nowDate = new Date(); /* 返回当前的时间 */
let ting = new Date('2022-06-18 12:15:10'); /* 一种传参格式 Sat Jun 18 2022 12:12:10 GMT+0800 (中国标准时间) */
let year = ting.getFullYear(); /* year=2022 返回当前时间的年份 */
let month = ting.getMonth() + 1; /* month=6 返回当前时间的月份(0-11),需要+1操作 */
let date = ting.getDate(); /* date=18 返回当前时间的日分(1-31) */
let day = ting.getDay(); /* day=6 返回当前星期X(0-6,0代表星期天) */
let hours = ting.getHours(); /* hours=12 返回当前时间的小时数(0-23) */
let minutes = ting.getMinutes(); /* minutes=15 返回当前时间的分钟数(0-59) */
let seconds = ting.getSeconds(); /* seconds=10 返回当前时间的秒数(0-59) */
let milliseconds = ting.getMilliseconds(); /* milliseconds=0 返回当前时间的毫秒数(0-999) */
let today = ting.toLocaleDateString(); /* today=2022/6/18 返回当前时间的 年/月/日 */
var mytime = ting.toLocaleTimeString(); /* mytime=12:15:10 返回当前时间的 时/分/秒 */
let monthDay = ting.toLocaleString(); /* monthDay=2022/6/18 12:15:10 返回当前时间的 年/月/日/时/分/秒 */
/* 返回当前时间的时间戳(从1970.01.01开始的毫秒数) */
let time1 = ting.getTime(); /* time1=1655525530000 */
let time2 = Date.parse(ting); /* time2=1655525530000 */
let time3 = ting.valueOf(); /* time3=1655525530000 */
let time4 = +new Date();
let time5 = Date.now();
实用案例
获取当前时间(年-月-日)
function Timer(){
var now = new Date();
var year = now.getFullYear(); //得到年份
var month = now.getMonth(); //得到月份
var date = now.getDate(); //得到日期
month = month + 1;
month = month.toString().padStart(2, "0");
date = date.toString().padStart(2, "0");
var defaultDate = `${year}-${month}-${date}`;
return value=defaultDate
}
Timer()
获取一周前的时间(年-月-日)
function Week(){
var date = new Date(new Date().getTime()-30*24*3600*1000);
var seperator1 = "-";
var month = date.getMonth() + 1<10? "0"+(date.getMonth() + 1):date.getMonth() + 1;
var strDate = date.getDate()<10? "0" + date.getDate():date.getDate();
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate;
return value=currentdate;
}
Week()
计算过去距离当前的时间之间的差,对应显示为某种具体单位
let value1 = +new Date();
let value2 = +new Date('2023-06-19 12:15:10');
let ting = (value2 - value1) / 1000;
function tinghua() {
if (ting < 60) {
let b = parseInt(ting);
return b + '秒';
} else if (60 <= ting && ting < 3600) {
let b = parseInt(ting / 60);
return b + "分钟";
} else if (3600 <= ting && ting < (24 * 3600)) {
let b = parseInt(ting / 60 / 60);
return b + '小时';
} else if ((24 * 3600) <= ting && ting < (24 * 3600 * 30)) {
let b = parseInt(ting / 60 / 60 / 24)
return b + "天"
} else if ((24 * 3600 * 30) <= ting && ting < (24 * 3600 * 30 * 12)) {
let b = parseInt(ting / 60 / 60 / 24 / 30)
return b + '月'
} else {
let b = parseInt(ting / 60 / 60 / 24 / 30 / 12)
return b + "年"
}
}
console.log(tinghua(ting)) /* 1年 */
倒计时
function countDown(e) {
let nowDate = +new Date(); /* 当前时间戳 */
let inputDate = +new Date(e); /* 固定时间戳 */
let time = (inputDate - nowDate) / 1000; /* 剩余的时间的秒数 */
let d = parseInt(time / 60 / 60 / 24); /* 天 */
let h = parseInt(time / 60 / 60 % 24); /* 小时 */
let m = parseInt(time / 60 % 60); /* 分钟 */
let s = parseInt(time % 60); /* 秒 */
return d + '天' + h + '时' + m + '分' + s + '秒'
}
console.log(countDown('2022-06-20 12:15:10')) /* 1天16时58分36秒 */
isArray() 监测是否为数组
Array.isArray([1,2,3]); /* true */
push() 末尾添加一个或多个元素,并修改原数组,返回新数组的长度。
let arr = [1, 2, 3];
console.log(arr.push(10)); /*4*/
console.log(arr); /*[1,2,3,10]*/
pop() 删除数组最后一个元素,无参数,并修改原数组,返回被删除的元素的值。
let arr = [1, 2, 3];
console.log(arr.pop()); /* 3 */
console.log(arr); /* [1,2] */
unshift() 向数组的开头添加一个或多个元素,并修改原数组,返回新数组的长度。
let arr = [1, 2, 3];
console.log(arr.unshift(12, 24)); /* 5 */
console.log(arr); /* [12,24,1,2,3] */
shift() 删除数组中第一个元素,无参数,并修改原数组,返回被删除的元素的值。
let arr = [1, 2, 3, 4];
console.log(arr.shift()); /* 1 */
console.log(arr); /* [2,3,4] */
reverse() 颠倒数组,无参数,并改变原数组,返回新数组。
let arr = [1, 2, '张三', 4, 5, 6];
console.log(arr.reverse()); /* [6,5,4,'张三',2,1] */
console.log(arr); /* [6,5,4,'张三',2,1] */
sort() 对数组元素进行排序,并改变原数组,返回新数组。
let arr = [1, 2, 11, '张三', 4, 5, 6];
console.log(arr.sort()); /* [1, 11, 2, 4, 5, 6, '张三'] */
console.log(arr); /* [1, 11, 2, 4, 5, 6, '张三'] */
arr.sort(function (a, b) {
// return a - b; /* 升序排序 */
return b - a; /* 降序排序 */
})
indexOf() 数组中查找指定元素的第一个索引,若存在则返回指定元素的索引,若不存在则返回-1。
let arr = ['张三', '李四', '王五', '赵四']; /* 下标是number类型 */
console.log(arr.indexOf('李四')); /* 1 number */
console.log(arr.indexOf('李大')); /* -1 number*/
lastIndexOf() 数组中查找指定元素的最后一个索引,若存在则返回指定元素的索引,若不存在则返回-1。
let arr = ['张三', '李四', '王五', '赵四'];
console.log(arr.lastIndexOf('赵四')); /* 3 */
console.log(arr.lastIndexOf('赵二')); /* -1 */
toString() 将数组转换成字符串,并用逗号分隔每一项,返回一个字符串。
let arr = ['囍', '乐', '无', '穷'];
console.log(arr.toString()); /* 囍,乐,无,穷 */
console.log(arr); /* ['囍', '乐', '无', '穷'] */
join('分隔符') 将数组中所有元素转换成一个字符串,返回一个字符串。
let arr = ['囍', '乐', '无', '穷'];
console.log(arr.join('-')); /* 囍-乐-无-穷 */
console.log(arr); /* ['囍', '乐', '无', '穷'] */
concat() 连接两个或多个数组,并不影响原数组,返回一个新数组。
let arr1 = ['张三', '李四'];
let arr2 = ['王五', '赵六'];
console.log(arr1.concat(arr2)); /* ['张三', '李四', '王五', '赵六'] */
console.log(arr1); /* ['张三', '李四'] */
console.log(arr2); /* ['王五', '赵六'] */
slice(start,end) 数组截取(start:开始下标[必选] end:结束下标[可选] ) 不改变原数组。
let arr = [1,2,3,4,5];
console.log(arr.slice(0,1)); //[1]
console.log(arr.slice(2,4)); //[3,4] 包含开始下标不包含结束下标!
console.log(arr); //[1,2,3,4,5]
splice(start,del,items) 数组截取 (start:开始下标,del:删除个数,items:多个,追加) 改变原数组
let arr = [1,2,3,4,5];
console.log(arr.splice(0,1,0.5)); //[1]
console.log(arr); //[0.5,2,3,4,5]
indexOf() 开头处查找指定元素在字符串中的位置,若存在则返回指定元素的索引,若不存在则返回-1。
let str = '改革春风吹满地,春风得意马蹄疾';
console.log(str.indexOf('春')); /* 2 */
console.log(str.indexOf('春',3)); /* 8 从索引3处开始查找 */
lastIndexOf() 结尾处查找指定元素在字符串中的位置,若存在则返回指定元素的索引,若不存在则返回-1。
let str = '改革春风吹满地,春风得意马蹄疾';
console.log(str.lastIndexOf('春')); /* 8 */
charAt()返回指定索引处的字符。
let str='ting';
let _a=str.charAt(1);
console.log(_a); //i
charCodeAt() 返回指定索引的ASCII码。
let str='ting';
let _b=str.charCodeAt(0);
console.log(_b); //116
str[index] 获取指定位置处的字符。
let str = 'tinghua';
console.log(str[5]); //u
concat() 拼接两个字符串,返回一个新的字符串,原字符串不会发生改变(等效于+,+更常用)。
let str='123';
let _f='abc';
let _g=str.concat(_f);
console.log(_g); //123abc
substr(start,length) 截取字符串,从索引start开始,截取length个字符,将截取的字符串返回,原字符串不会发生改变
let str='shiqihentinghuahenshuai';
let _h=str.substr(5,10);
console.log(_h); //hentinghua
slice(start,end) 截取字符串,从索引start开始,截取到索引end,不包括end。将截取的字符串返回,原字符串不会发生改变,与substring()相似。
let str='shiqihentinghuahenshuai';
let _j=str.slice(5,10);
console.log(_i); //henti
substring(n,m) 截取字符串,从索引n开始,截取到索引m,不包括m。将截取的字符串返回,原字符串不会发生改变,与slice()相似。
let str='shiqihentinghuahenshuai';
let _i=str.substring(5,10);
console.log(_i); //henti
replace(v,i) 替换字符串,将v替换成i。
let str = 'tinghua';
console.log(str.replace('t', 'y')); //yinghua
split('分隔符') 字符转数组,使用指定字符分割字符串,返回一个数组,原字符串不发生改变。
let str='shiqi';
let _k=str.split("");
console.log(_k); //["s", "h", "i", "q", "i"]
toLowerCase()将字符串转换为小写
let str='APC听ADC';
let _l=str.toLowerCase();
console.log(_l); //apc听adc
toUpperCase() 将字符串转换为大写
let str='tinghua';
let _l=str.toUpperCase();
console.log(_l); //TINGHUA
toString() 返回字符串对象值
let arr=['100','200'];
let ti=arr.toString();
console.log(ti); //100,200
trim()去除字符串中的首尾空格
let pink='ting';
let str=' 222 ';
let keke='hua';
let _p=pink+str.trim()+keke;
console.log(_p); //ting222hua
toLocaleLowerCase() 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
let str = 'TINGHUA';
console.log(str.toLocaleLowerCase()); //tinghua
toLocaleUpperCase() 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
let str = 'tinghua';
console.log(str.toLocaleUpperCase()); //TINGHUA