Math
Math是一个内置对象,它拥有一些数学常数属性和数学函数方法。Math不是一个对象。
Math用于Number类型。它不支持BigInt。
与其他全局对象不同的是,Math 不是一个构造器。Math 的所有属性与方法都是静态的。引用圆周率的写法是 Math.PI,调用正余弦函数的写法是 Math.sin(x),x 是要传入的参数。Math 的常量是使用 JavaScript 中的全精度浮点数来定义的。
方法
成员 | 功能 |
---|---|
PI | 获取圆周率,结果为3.141592653589793 |
abs(x) | 获取x的绝对值,可传入普通数值或是用字符串表示的数值 |
max() | 获取所有参数中的最大值 |
min() | 获取所有参数中的最小值 |
pow(base, exponent) | 获取基数(base)的指数(exponent)次幂,即 baseexponent |
sqrt(x) | 获取x的平方根 |
ceil(x) | 获取大于或等于x的最小整数,即向上取整(舍弃小数部分,整数部分加1) |
floor(x) | 获取小于或等于x的最大整数,即向下取整(舍弃小数部分,整数部分不变) |
round(x) | 获取x的四舍五入后的整数值 |
random() | 获取大于或等于0.0且小于1.0的随机值 |
示例代码:
1.圆周率
console.log(Math.PI);
2.绝对值
console.log(Math.abs(9));
console.log(Math.abs(-9));
3.最大最小值
console.log(Math.max(1, 2, 3));//最大
console.log(Math.min(1, 2, 3));//最小
4.向上/下取整
console.log(Math.ceil(1.9));//上
console.log(Math.ceil(1.9));//下
5.平方根
console.log(Math.sqrt(9));
6.四舍五入
console.log(Math.round(-1.5));
console.log(Math.round(-1.6);
7.随机数
//生成0-1之间的随机数[0,1),该方法返回的结果是一个很长的浮点数 Math.random(); //表示生成大于或等于min且小于max的随机数 Math.random() * (max-min)+min; //表示生成0到任意数之间的随机整数 Math.floor(Math.random() * (max+1)); //表示生成1到任意数之间的随机整数 Math.floor(Math.random() * max+1)
案例1:
利用随机数,实现在数组中随机获取一个元素
function getRandom(min, max) { // Math.floor向下取整 return Math.floor(Math.random() * (max - min + 1) + min); } var arr = ['apple', 'banana', 'orange', 'pear'] console.log(arr[getRandom(0, arr.length - 1)])
案例2:
随机生成颜色RGB(0-255,0-255,0-255)
function getRandom(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } function getRGB(min, max) { //调用生成随机数的函数 var c1 = getRandom(min, max); var c2 = getRandom(min, max); var c3 = getRandom(min, max); //利用字符串拼接返回 return 'rgb(' + c1 + ', ' + c2 + ', ' + c3 + ')'; } console.log(getRGB(0, 255));
日期对象
Date 对象是 JavaScript 内置的对象,通过它您可以访问计算机系统的时间,此外,Date 对象中还提供了多种用于管理、操作和格式化时间/日期的方法。 在开始处理时间和日期之前,我们需要先创建一个 Date 对象。 与其他对象(数组对象、字符串对象等)不同,Date 对象不能直接声明,必须通过 Date () 函数定义。
日期对象常用的get方法
方法 | 作用 |
---|---|
getFullYear() | 获取表示年份的4位数字,如2020 |
getMonth() | 获取月份,范围0~11(0表示一月,1表示二月,依次类推) |
getDate() | 获取月份中的某一天,范围1~31 |
getDay() | 获取星期,范围0~6(0表示星期日,1表示星期一,依次类推) |
getHours() | 获取小时数,返回0~23 |
getMinutes() | 获取分钟数,范围0~59 |
getSeconds() | 获取秒数,范围0~59 |
getMilliseconds() | 获取毫秒数,范围0~999 |
getTime() | 获取从1970-01-01 00:00:00距离Date对象所代表时间的毫秒数 |
日期对象的常用set方法
方法 | 作用 |
---|---|
setFullYear(value) | 设置年份 |
setMonth(value) | 设置月份 |
setDate(value) | 设置月份中的某一天 |
setHours(value) | 设置小时数 |
setMinutes(value) | 设置分钟数 |
setSeconds(value) | 设置秒数 |
setMilliseconds(value) | 设置毫秒数 |
setTime(value) | 通过从1970-01-01 00:00:00计时的毫秒数来设置时间 |
Date可接收的参数
1.接收一个Number
一般是时间戳的毫秒数,返回参数数字所处的时间
var date = new Date(123415345612);
console.log(date)
//输出:Thu Nov 29 1973 18:02:25 GMT+0800 (中国标准时间)
2.接收一个String类型参数
不过需要正确的格式,如“2010-10-10 10:10:10”返回对应时间
var date = new Date("2010-10-10 10:10:10");
console.log(date);
//输出:2010/10/10 10:10:10
3.可传入多个参数
总共可传入7个Number类型,分别是年,月(0-11),日,时,分,秒,毫秒。这种方式的每一个参数没有规定范围, Date对象会自动帮我们算出对应的时间 。
var date = new Date(2023,4,15,1,10,10,10,999);
console.log(date)
//输出:Mon May 15 2023 01:10:10 GMT+0800 (中国标准时间)
案例1:统计代码执行时间
获取时间戳的常见方式
//方式一:通过日期对象的valuesof()或getTime()方法
var date = new Date();
//用于获取对象原始值
console.log(date.valueOf());//结果:1681532931624
console.log(date.getTime());//结果:1681532931624
// 方式2:使用“+”运算符转换为数值型
var date2 = + new Date();
console.log(date2); // 结果:1681533198817
// 方式3:使用HTML5新增的Date.now()方法
console.log(Date.now()); // 结果:1681533198818
案例2:格式化日期对象,HH:mm:ss 的形式 比如 00:10:45
function getTimer() { // 获取当前时间 var date = new Date(); var h = date.getHours();//获取当前小时数 var m = date.getMinutes();//获取当前分钟数 var s = date.getMinutes();//获取当前秒数 // 使用三元表达式格式化日期 h = h < 10 ? '0' + h : h m = m < 10 ? '0' + m : m s = s < 10 ? '0' + s : s return h + ':' + m + ':' + s; } console.log(getTimer());