Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

重学js —— Math 对象 #114

Open
lizhongzhen11 opened this issue May 27, 2020 · 0 comments
Open

重学js —— Math 对象 #114

lizhongzhen11 opened this issue May 27, 2020 · 0 comments
Labels
js基础 Good for newcomers 重学js 重学js系列 规范+MDN

Comments

@lizhongzhen11
Copy link
Owner

lizhongzhen11 commented May 27, 2020

Math 对象

  • MDN
  • 即固有对象 %Math%
  • 全局对象 "Math" 属性的初始值
  • 属于 普通对象
  • [[Prototype]] 内置插槽其值为 %Object.prototype%
  • 不是 函数对象
  • 没有 [[Construct]] 内置方法;不能被当成构造器,不能被 new 调用
  • 没有 [[Call]] 内置方法;不能被当作函数调用
  • mathjs

Math 对象的值属性

Math.E

Math.LN10

Math.LN2

Math.LOG10E

Math.LOG2E

Math.PI

Math.SQRT1_2

Math.SQRT2

Math [ @@toStringTag ]

初始值为字符串 "Math"

属性描述符为 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }

Math 对象的函数属性

Math.abs ( x )

  • MDN
  • 返回绝对值,如果传入 NaN 那么还是返回 NaN

Math.acos ( x )

  • MDN
  • 结果以弧度表示,范围为 +0 ~ +π
Math.acos(1) // 0
Math.acos(2) // NaN

Math.acosh ( x )

Math.acosh(-Infinity) // NaN

Math.asin ( x )

Math.asinh ( x )

Math.atan ( x )

Math.atanh ( x )

Math.atan2 ( y, x )

Math.cbrt ( x )

  • MDN
  • 返回任意数字的立方根
Math.cbrt(NaN) // NaN
Math.cbrt(+0) // +0
Math.cbrt(-0) // -0
Math.cbrt(+) // +∞
Math.cbrt(-) // -∞
Math.cbrt(null) // 0
Math.cbrt(0) // 0
Math.cbrt(2) // 1.2599210498948734
Math.cbrt(-Infinity) // -Infinity

Math.ceil ( x )

  • MDN
  • 返回不小于 x 的最小整数
  • 结果与调用 -Math.floor(-x) 相同
  • 如果 xNaN,返回 NaN
  • 如果 x+0,返回 +0
  • 如果 x-0,返回 -0
  • 如果 x+∞,返回 +∞
  • 如果 x-∞,返回 -∞
  • 如果 -1 < x < 0,返回 -0
Math.ceil(-0.1) // -0
Math.ceil(null) // 0
Math.ceil() // NaN

Math.clz32 ( x )

Math.cos ( x )

Math.cosh ( x )

Math.exp ( x )

Math.expm1 ( x )

Math.floor ( x )

  • MDN
  • 返回不超过 x 的最大整数
  • 结果与 -Math.ceil(-x) 相同
Math.floor() // NaN
Math.floor(NaN) // NaN
Math.floor(null) // 0
Math.floor(0.9) // 0

Math.fround ( x )

  • MDN
  • 将任意的数字转换为离它最近的单精度浮点数形式的数字
0.1 + 0.2 === 0.3 // false
Math.fround(0.1 + 0.2) === Math.fround(0.3) // true

Math.fround(1.337); // 1.3370000123977661
Math.fround(1.337) === 1.337; // false

Math.hypot ( value1, value2, ...values )

Math.imul ( x, y )

Math.log ( x )

Math.log1p ( x )

Math.log10 ( x )

Math.log2 ( x )

Math.max ( value1, value2, ...values )

Math.max() // -Infinity
Math.max(undefined) // NaN
Math.max(NaN) // NaN
Math.max(null) // 0
Math.max(0, -0) // 0

Math.min ( value1, value2, ...values )

Math.pow ( base, exponent )

  1. 设置 base? ToNumber(base)
  2. 设置 exponent? ToNumber(exponent)
  3. 返回 ! Number::exponentiate(base, exponent)

Math.random ( )

IEEE 754标准的默认模式是 最近舍入(舍入为最接近的偶数),它与四舍五入不同的是,对.5的舍入上采用取偶数的方式四舍六入五取偶五取偶 的规则:当小数部分恰为0.5时,若个位是奇数则入,若个位是偶数则舍,总之让个位变成偶数。

Math.round ( x )

  • MDN
  • 返回最接近 x 的整数;如果 x 是整数,则返回 x;如果两个整数相等地接近 x,返回更靠近 +∞ 的那个
Math.round(-0.1) // -0
Math.floor(-0.1 + 0.5) // +0

Math.sign ( x )

Math.sin ( x )

Math.sinh ( x )

Math.sqrt ( x )

Math.tan ( x )

Math.tanh ( x )

Math.trunc ( x )

  • MDN
  • 将数字的小数部分去掉,只保留整数部分。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
js基础 Good for newcomers 重学js 重学js系列 规范+MDN
Projects
None yet
Development

No branches or pull requests

1 participant