js入门之内置对象Math
一、 复习数据类型
简单数据类型, 基本数据类型/值类型 Number String Boolean Null Undefined 复杂数据类型 引用类型 Object 数组 数据在内存中是如何存储的 堆: 存复杂类型 栈: 存简单类型 简单类型在函数内部修改值不会影响外部 简单类型数据直接存储在栈上 复杂类型的会影响 因为指的都是同一块内存区域 复杂类型的存在在堆上的同时 在栈上也会生成一个内存地址 指向堆 内置对象 (可查看MDN文档) js中的对象 自定义对象 内置对象 浏览器对象(不属于ecmascript) Math/Array/Date Mozilla开发者网络(MDN)提供有关开放网络技术 包括HTML CSS和万维网 以及HTML5 应用的API https://developer.mozilla.org/zh-CN/docs/Learn
二、 Math对象
Math对象不是构造函数,它具有数学常数和函数的属性方法 都是以静态成员的方式提供跟数学相关的运算来找Math中的成员(求绝对值、 整数) Math.PI 圆周率 (是属性) Math.random() 生成随机数 Math.floor() 向下取整 Math.ceii() 向上取整 Math.round() 四舍五入 Math.abs() 绝对值 Math.max/Math.min() 取最大值/最小值 返回给定的一组数字中最大值,如果给定的参数中至少有一个参数无法被转换成数字,则会返回NaN Math.sin()/Math.cos() 正弦余弦 Math.power()/Math.sqrt() 求指数次幂/求平方根
案例1: 求10~20之间的任意值
function random(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); } console.log(random(10, 20));
案例2: 模拟max和min方法的实现
var MyMath = { max: function () { var max = arguments[0]; for (var i = 1; i < arguments.length; i++) { if (max < arguments[i]) { max = arguments[i]; } } return max; }, min: function () { min = arguments[0]; for (var i = 1; i < arguments.length; i++) { if (min > arguments[i]) { min = arguments[i]; } } return min; } }; console.log(MyMath.max(23,21,33));
We are down, but not beaten. tested but not defeated.