当前位置:首页 » 《关注互联网》 » 正文

JavaScript中的数学与时光魔法:Math与Date对象大揭秘

27 人参与  2024年05月07日 18:00  分类 : 《关注互联网》  评论

点击全文阅读


在这里插入图片描述



个人主页:学习前端的小z

个人专栏:JavaScript 精粹

本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论!
在这里插入图片描述

文章目录

?Math对象方法?1 Math静态属性?2 Math.abs()?3 Math.cos()?4 Math.sin()?5 Math.tan()?6 Math.max()?7 Math.min()?8 Math.pow()?9 Math.random()?10 Math.round()?11 Math.floor()?12 Math.ceil()?13 方法汇总 ?Date对象方法?1 获取日期的毫秒形式?2 日期格式化方法?3 获取日期指定部分?4 案例


在这里插入图片描述


?Math对象方法

Math对象不是构造函数,它具有数学常数和函数的属性和方法,都是以静态成员的方式提供

跟数学相关的运算来找Math中的成员(求绝对值,取整)

?1 Math静态属性

Math.E  //属性表示自然对数的底数(或称为基数),e,约等于 2.718。Math.LN10 //属性表示 10 的自然对数,约为 2.302:Math.LN2 // 属性表示 2 的自然对数,约为 0.693:Math.LOG10E //属性表示以 10 为底数,e 的对数,约为 0.434:Math.LOG2E //属性表示以 2 为底数,e 的对数,约为 1.442:Math.PI //表示一个圆的周长与直径的比例,约为 3.14159:Math.SQRT1_2 // 属性表示 1/2 的平方根,约为 0.707:Math.SQRT2 //属性表示 2 的平方根,约为 1.414:

?2 Math.abs()

函数返回指定数字 “x“ 的绝对值。如下:

Math.abs ⁡ ( x ) = ∣ x ∣ = { x if x ≥ 0 − x if x < 0 {\mathtt{\operatorname{Math.abs}(x)}} = {|x|} = \begin{cases} x & \text{if} \quad x \geq 0 \\ -x & \text{if} \quad x < 0 \end{cases} Math.abs(x)=∣x∣={x−x​ifx≥0ifx<0​

Math.abs(x);  //x为数值参数//传入一个非数字形式的字符串或者 undefined/empty 变量,将返回 NaN。传入 null 将返回 0。Math.abs('-1');     // 1Math.abs(-2);       // 2Math.abs(null);     // 0Math.abs("string"); // NaNMath.abs();         // NaN

?3 Math.cos()

函数返回一个数值的余弦值。

x一个以弧度为单位的数值。cos 方法返回一个 -1 到 1 之间的数值,表示角度(单位:弧度)的余弦值。由于 cos 是 Math 的静态方法,所以应该像这样使用:Math.cos(),而不是作为你创建的 Math 实例的方法。Math.cos(0);           // 1Math.cos(1);           // 0.5403023058681398Math.cos(Math.PI);     // -1Math.cos(2 * Math.PI); // 1

?4 Math.sin()

函数返回一个数值的正弦值。

x一个数值(以弧度为单位)。sin 方法返回一个 -1 到 1 之间的数值,表示给定角度(单位:弧度)的正弦值。由于 sin 是 Math 的静态方法,所以应该像这样使用:Math.sin(),而不是作为你创建的 Math 实例的方法。Math.sin(0);           // 0Math.sin(1);           // 0.8414709848078965Math.sin(Math.PI / 2); // 1

?5 Math.tan()

方法返回一个数值的正切值。

Math.tan(x);x一个数值,表示一个角(单位:弧度)。tan 方法返回一个数值,表示一个角的正切值。由于 tan 是 Math 的静态方法,所以应该像这样使用 Math.tan(),而不是作为你创建的 Math 实例的方法。Math.tan(1);  //1.5574077246549023

?6 Math.max()

函数返回一组数中的最大值。

console.log(Math.max(1, 3, 2));// expected output: 3console.log(Math.max(-1, -3, -2));// expected output: -1Math.max(value1[,value2, ...]) 参数value1, value2, ...一组数值

返回值

返回给定的一组数字中的最大值。如果给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN。

?7 Math.min()

函数返回一组数中的最大值。

console.log(Math.min(1, 3, 2));// expected output: 1console.log(Math.min(-1, -3, -2));// expected output: -3Math.min([value1[,value2, ...]]) 参数value1, value2, ...一组数值

返回值

给定数值中最小的数。如果任一参数不能转换为数值,则返回NaN。

?8 Math.pow()

函数返回基数(base)的指数(exponent)次幂,即 baseexponent

console.log(Math.pow(7, 3));// expected output: 343Math.pow(base, exponent) base基数exponent指数

返回值

返回base的exponent次幂结果

?9 Math.random()

函数返回一个浮点, 伪随机数在范围从0到小于1,也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。

function getRandomInt(max) {  return Math.floor(Math.random() * Math.floor(max));}console.log(getRandomInt(3));// expected output: 0, 1 or 2console.log(getRandomInt(1));// expected output: 0console.log(Math.random());// expected output: a number between 0 and 1Math.random()

返回值

一个浮点型伪随机数字,在0(包括0)和1(不包括)之间。

?10 Math.round()

函数返回一个数字四舍五入后最接近的整数

Math.round(20.49) //20Math.round(20.5) //21Math.round(-20.5) //-20Math.round(-20.51) //-21

返回值

四舍五入后的值

?11 Math.floor()

返回小于或等于一个给定数字的最大整数 : 向下取整

Math.floor(x);Math.floor( 45.95); // 45 Math.floor( 45.05); // 45 Math.floor( 4 ); // 4 Math.floor(-45.05); // -46 Math.floor(-45.95); // -46/* 与 ~~ 去除小数位有区别 */~~(-45.95) //-45 

返回值

一个表示小于或等于指定数字的最大整数的数字。

?12 Math.ceil()

函数返回大于或等于一个给定数字的最小整数

Math.ceil(x);console.log(Math.ceil(.95));//  1console.log(Math.ceil(4));//  4console.log(Math.ceil(7.004));//  8console.log(Math.ceil(-7.004));//  -7

返回值

大于或等于给定数字的最小整数。

?13 方法汇总

Math.PI// 圆周率Math.random()// 生成随机数Math.floor()/Math.ceil() // 向下取整/向上取整Math.round()// 取整,四舍五入Math.abs()// 绝对值Math.max()/Math.min() // 求最大和最小值Math.sin()/Math.cos() // 正弦/余弦Math.power()/Math.sqrt() // 求指数次幂/求平方根

在这里插入图片描述


?Date对象方法

创建 Date 实例用来处理日期和时间。Date 对象基于1970年1月1日(世界标准时间)起的毫秒数。

// 获取当前时间,UTC世界时间,距1970年1月1日(世界标准时间)起的毫秒数var now = new Date();console.log(now.valueOf());// 获取距1970年1月1日(世界标准时间)起的毫秒数Date构造函数的参数1. 毫秒数 1498099000356new Date(1498099000356)2. 日期格式字符串  '2015-5-1' new Date('2015-5-1')3. 年、月、日……  new Date(2015, 4, 1)   // 月份从0开始

?1 获取日期的毫秒形式

var now = new Date();// valueOf用于获取对象的原始值console.log(date.valueOf())// HTML5中提供的方法,有兼容性问题var now = Date.now();// 不支持HTML5的浏览器,可以用下面这种方式var now = + new Date();// 调用 Date对象的valueOf() 

?2 日期格式化方法

toString()// 转换成字符串valueOf()// 获取毫秒值// 下面格式化日期的方法,在不同浏览器可能表现不一致,一般不用toDateString()toTimeString()

?3 获取日期指定部分

getTime()    // 返回毫秒数和valueOf()结果一样,valueOf()内部调用的getTime()getMilliseconds() getSeconds()  // 返回0-59getMinutes()  // 返回0-59getHours()    // 返回0-23getDay()      // 返回星期几 0周日   6周6getDate()     // 返回当前月的第几天getMonth()    // 返回月份,***从0开始***getFullYear() //返回4位的年份  如 2016

?4 案例

写一个函数,格式化日期对象,返回yyyy-MM-dd HH:mm:ss的形式
function formatDate(d) {    //如果date不是日期对象,返回    if (!date instanceof Date) {        return;    }    var year = d.getFullYear(),        month = d.getMonth() + 1,        date = d.getDate(),        hour = d.getHours(),        minute = d.getMinutes(),        second = d.getSeconds(),        week = ['日', '一', '二', '三', '四', '五', '六'][d.getDay()]; // 1234560 => 一 二 三 四 五 六 七    return year + '年' + padLeft(month) + '月' + padLeft(date) + '日 ' + padLeft(hour) + ':' + padLeft(minute) + ':' + padLeft(second) + ' 星期' + week;}function padLeft(num){    return String(num)[1] && String(num) || '0' + num;}
计算时间差,返回相差的天/时/分/秒
function getInterval(start, end) {  var day, hour, minute, second, interval;  interval = end - start;  interval /= 1000;  day = ~~(interval / 60 /60 / 24);  hour = ~~(interval / 60 /60 % 24);  minute = ~~(interval / 60 % 60);  second = ~~(interval % 60);  return {    day: day,    hour: hour,    minute: minute,    second: second  }}

在这里插入图片描述


参考 : http://bclary.com/log/2004/11/07/#a-11.9.3
在这里插入图片描述



点击全文阅读


本文链接:http://zhangshiyu.com/post/104794.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 祖母寿宴,侯府冒牌嫡女被打脸了(沈屿安秦秀婉)阅读 -
  • 《雕花锦年,昭都旧梦》(裴辞鹤昭都)完结版小说全文免费阅读_最新热门小说《雕花锦年,昭都旧梦》(裴辞鹤昭都) -
  • 郊区41号(许洛竹王云云)完整版免费阅读_最新全本小说郊区41号(许洛竹王云云) -
  • 负我情深几许(白诗茵陆司宴)完结版小说阅读_最热门小说排行榜负我情深几许白诗茵陆司宴 -
  • 九胞胎孕妇赖上我萱萱蓉蓉免费阅读全文_免费小说在线看九胞胎孕妇赖上我萱萱蓉蓉 -
  • 为保白月光,侯爷拿我抵了债(谢景安花田)小说完结版_完结版小说全文免费阅读为保白月光,侯爷拿我抵了债谢景安花田 -
  • 陆望程映川上官硕《我的阿爹是带攻略系统的替身》最新章节阅读_(我的阿爹是带攻略系统的替身)全章节免费在线阅读陆望程映川上官硕
  • 郑雅琴魏旭明免费阅读_郑雅琴魏旭明小说全文阅读笔趣阁
  • 头条热门小说《乔书意贺宴临(乔书意贺宴临)》乔书意贺宴临(全集完整小说大结局)全文阅读笔趣阁
  • 完结好看小说跨年夜,老婆初恋送儿子故意出车祸_沈月柔林瀚枫完结的小说免费阅读推荐
  • 热推《郑雅琴魏旭明》郑雅琴魏旭明~小说全文阅读~完本【已完结】笔趣阁
  • 《你的遗憾与我无关》宋怀川冯洛洛无弹窗小说免费阅读_免费小说大全《你的遗憾与我无关》宋怀川冯洛洛 -

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1