个人主页:学习前端的小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−xifx≥0ifx<0
Math.abs(x); //x为数值参数 //传入一个非数字形式的字符串或者 undefined/empty 变量,将返回 NaN。传入 null 将返回 0。 Math.abs('-1'); // 1 Math.abs(-2); // 2 Math.abs(null); // 0 Math.abs("string"); // NaN Math.abs(); // NaN
🍄3 Math.cos()
函数返回一个数值的余弦值。
x 一个以弧度为单位的数值。 cos 方法返回一个 -1 到 1 之间的数值,表示角度(单位:弧度)的余弦值。 由于 cos 是 Math 的静态方法,所以应该像这样使用:Math.cos(),而不是作为你创建的 Math 实例的方法。 Math.cos(0); // 1 Math.cos(1); // 0.5403023058681398 Math.cos(Math.PI); // -1 Math.cos(2 * Math.PI); // 1
🍄4 Math.sin()
函数返回一个数值的正弦值。
x 一个数值(以弧度为单位)。 sin 方法返回一个 -1 到 1 之间的数值,表示给定角度(单位:弧度)的正弦值。 由于 sin 是 Math 的静态方法,所以应该像这样使用:Math.sin(),而不是作为你创建的 Math 实例的方法。 Math.sin(0); // 0 Math.sin(1); // 0.8414709848078965 Math.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: 3 console.log(Math.max(-1, -3, -2)); // expected output: -1 Math.max(value1[,value2, ...]) 参数 value1, value2, ... 一组数值
返回值
返回给定的一组数字中的最大值。如果给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN。
🍄7 Math.min()
函数返回一组数中的最大值。
console.log(Math.min(1, 3, 2)); // expected output: 1 console.log(Math.min(-1, -3, -2)); // expected output: -3 Math.min([value1[,value2, ...]]) 参数 value1, value2, ... 一组数值
返回值
给定数值中最小的数。如果任一参数不能转换为数值,则返回NaN。
🍄8 Math.pow()
函数返回基数(base)的指数(exponent)次幂,即 baseexponent。
console.log(Math.pow(7, 3)); // expected output: 343 Math.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 2 console.log(getRandomInt(1)); // expected output: 0 console.log(Math.random()); // expected output: a number between 0 and 1 Math.random()
返回值
一个浮点型伪随机数字,在0(包括0)和1(不包括)之间。
🍄10 Math.round()
函数返回一个数字四舍五入后最接近的整数
Math.round(20.49) //20 Math.round(20.5) //21 Math.round(-20.5) //-20 Math.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)); // 1 console.log(Math.ceil(4)); // 4 console.log(Math.ceil(7.004)); // 8 console.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. 毫秒数 1498099000356 new 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-59 getMinutes() // 返回0-59 getHours() // 返回0-23 getDay() // 返回星期几 0周日 6周6 getDate() // 返回当前月的第几天 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
- 计算时间差,返回相差的天/时/分/秒
- 写一个函数,格式化日期对象,返回yyyy-MM-dd HH:mm:ss的形式
还没有评论,来说两句吧...