提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、数学对象是什么?为什么要使用数学对象?
1.是什么?
Math对象是JavaScript中的内置对象之一,它提供了一些数学相关的方法和常量。通过Math对象,可以进行常见的数学运算,如取整、四舍五入、求平方根、求绝对值等。Math对象不是一个构造函数
,因此不能创建Math对象的实例,而是直接通过Math对象来调用其方法和属性
。
2.为什么?
- 提供了一些常用的数学运算方法,如取整、四舍五入、求平方根等,可以
方便地进行数值计算
。 - 提供了一些常用的数学常量,如π(Math.PI)、自然对数的底数e(Math.E)等,可以方便地使用这些常量进行数学计算。
- Math对象的方法是静态方法,可以直接通过Math对象调用,
无需创建实例
,使用方便。 - Math对象的方法都是原生的,不需要依赖其他库或框架,可以
在任何支持JavaScript的环境中使用
。 - Math对象的方法执行
效率高
,因为它们是由JavaScript引擎底层实现的,通常比使用自定义函数实现的相同功能更快。
二、常用的数学对象
1.常用属性
属性 | 描述 |
---|---|
Math.E | 自然对数的底数 |
Math.PI | 圆周率 |
Math.LN2 | 2 的自然对数 |
Math.SQRT2 | 2 的平方根 |
2.常用方法
属性 | 描述 |
---|---|
Math.abs(x) | 返回一个数的绝对值。 |
Math.pow(x, y) | 返回一个数的 y 次幂 |
Math.random() | 返回一个 0 到 1 之间的伪随机数 |
Math.sqrt(x) | 返回一个数的平方根 |
Math.round() | 返回四舍五入后的整数 |
Math.exp(x) | 返回欧拉常数的参数次方 |
Math.floor() | 返回向下取整的整数 |
Math.ceil() | 返回向上取整的整数 |
三、日期对象Date
在 JavaScript 中,日期对象是 Date,用于处理日期和时间。
构造函数: 构造函数也是函数, 可以通过new关键字实例化对象的函数, 能new对象的函数: Object Array Number String Boolean Function RegExp Date …
静态属性: 由构造器直接调用的属性
静态方法:由构造器直接调用的方法, Date.now() Array.isArray() String.formCharCode()
1、日期对象 (Date)
var a = new Date();
console.log(a); // 当前时间
console.log(typeof a); // 日期对象 object
日期对象才可以使用日期对象的api
var b = Date();
console.log(b); // 当前时间的字符串
console.log(typeof b); // 字符串string
字符串没有日期对象的api
常用的方法
方法 | 描述 |
---|---|
getDate() | 返回一个月的某一天 |
getDay() | 返回一周中的某一天 |
getFullYear() | 返回年份 |
getHours() | 返回小时 |
getMonth() | 返回月份 |
getTime() | 返回毫秒数 |
setFullYear() | 设置年份 |
setDate() | 设置一个月中的某一天 |
setMonth() | 设置月份 |
例子1:
var date = new Date(); // 实例化 Date 对象
var month = date.getMonth() + 1; // 获取月份,取值为 0(一月)到 11(十二月)之间的整数
document.write(
"今天是" +
date.getFullYear() +
"年" +
month +
"月" +
date.getDate() +
"日" +
"<br>"
);
例子2:
// 设置目标日期
var targetDate = new Date('november 1,2024').getTime();
// 更新倒计时的函数
function updateCountdown() {
// 获取当前日期和时间
var now = new Date().getTime();
// 计算时间差
var distance = targetDate - now;
// 计算天、小时、分钟和秒
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// 将倒计时显示到页面上
document.body.innerHTML = "<h3>距离诞辰还有: " +
days + "天 " +
hours + "小时 " +
minutes + "分钟 " +
seconds + "秒</h3>";
// 每秒更新倒计时
setTimeout(updateCountdown, 1000);
}
// 当页面加载完成后启动倒计时
window.onload = updateCountdown;
四、日期对象传参
(1) 不传参数, 拿到当前时间
var a = new Date(); // Fri Sep 27 2024 15:36:24 GMT+0800 (中国标准时间)
(2) 传递一个数字参数,
作为毫秒数, 返回 1970/1/1 00:00:00 + 毫秒数的时间
var b = new Date(0); // 1970/1/1 08:00:00 (东八区)
b = new Date(1000); // 1970/1/1 08:00:01 (东八区)
b = new Date(24 * 60 * 60 * 1000); // 1970/1/2 08:00:01 (东八区)
(3) 传递一个日期字符串, 直接指定日期
var c = new Date("2018"); // 2018/1/1
var c = new Date("2018-09"); // 2018/9/1
var c = new Date("2018-09-10"); // 2018/9/10
var c = new Date("2018-09-10 18:00:00"); // 2018/09/10 18:00:00
不同的日期字符串格式:
var c = new Date("2018/9/10 18:00:00");
var c = new Date("2018-9-10 18:00:00");
var c = new Date("2018*9*9 18:00:00");
(4) 传递多个数字参数
月份是从0开始的, 0是1月, 11是12月,所以如果想得到准月份的话 +1
// new Date(年, 月 [, 日[, 时[, 分[, 秒[, 毫秒]]]]),
var d = new Date(2024, 1); // 2024/2/1 00:00:00
var d = new Date(2024, 8, 27, 15, 58, 0); // 2024/9/27 15:58:00