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

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

22 人参与  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)
  • 赞助本站

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

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

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