【原生JS】前端JS数学Math对象最常用 20 道面试题总结(含详细代码解析)

以下是老曹总结的关于原生 JavaScript 中 Math 对象的 20 道常用面试题总结,每道题目都附有详细的解释和示例代码,希望对你有所帮助!


1. 如何使用 Math.abs() 方法?

问题: Math.abs(-5) 的输出是什么?

答案:
Math.abs() 返回一个数的绝对值。

console.log(Math.abs(-5)); // 输出: 5

2. Math.ceil()Math.floor() 的区别是什么?

问题: 分别写出 Math.ceil(3.2)Math.floor(3.8) 的结果。

答案:

  • Math.ceil(x) 返回大于或等于 x 的最小整数(向上取整)。
  • Math.floor(x) 返回小于或等于 x 的最大整数(向下取整)。
console.log(Math.ceil(3.2)); // 输出: 4
console.log(Math.floor(3.8)); // 输出: 3

3. 如何生成指定范围内的随机数?

问题: 写一个函数,生成 [min, max] 范围内的随机整数。

答案:
可以结合 Math.random()Math.floor() 来实现。

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

console.log(getRandomInt(1, 10)); // 示例输出可能是 7

4. Math.round() 的作用是什么?

问题: Math.round(2.6)Math.round(2.4) 的结果分别是什么?

答案:
Math.round(x) 返回四舍五入后的最接近的整数。

console.log(Math.round(2.6)); // 输出: 3
console.log(Math.round(2.4)); // 输出: 2

5. 如何获取两个数的最大值?

问题: 使用 Math.max() 获取 3, 7, 2 中的最大值。

答案:
Math.max() 可以传入多个参数,并返回其中最大的一个。

console.log(Math.max(3, 7, 2)); // 输出: 7

6. 如何获取两个数的最小值?

问题: 使用 Math.min() 获取 3, 7, 2 中的最小值。

答案:
Math.min() 可以传入多个参数,并返回其中最小的一个。

console.log(Math.min(3, 7, 2)); // 输出: 2

7. Math.sqrt() 的用途是什么?

问题: 计算 Math.sqrt(16) 的值。

答案:
Math.sqrt(x) 返回 x 的平方根。

console.log(Math.sqrt(16)); // 输出: 4

8. 如何计算幂运算?

问题: 使用 Math.pow() 计算 $ 2^3 $ 的值。

答案:
Math.pow(base, exponent) 返回 baseexponent 次方。

console.log(Math.pow(2, 3)); // 输出: 8

9. Math.sin()Math.cos() 的参数单位是什么?

问题: Math.sin(Math.PI / 2) 的值是多少?

答案:
Math.sin(x)Math.cos(x) 的参数是弧度值。

console.log(Math.sin(Math.PI / 2)); // 输出: 1

10. Math.E 表示什么?

问题: Math.E 的近似值是多少?

答案:
Math.E 是自然对数的底数,约为 2.71828。

console.log(Math.E); // 输出: 2.718281828459045

11. Math.LN2Math.LN10 的含义是什么?

问题: 解释 Math.LN2Math.LN10 的值。

答案:

  • Math.LN2 是 2 的自然对数,约为 0.693147。
  • Math.LN10 是 10 的自然对数,约为 2.302585。
console.log(Math.LN2); // 输出: 0.6931471805599453
console.log(Math.LN10); // 输出: 2.302585092994046

12. Math.LOG2EMath.LOG10E 的含义是什么?

问题: 解释 Math.LOG2EMath.LOG10E 的值。

答案:

  • Math.LOG2E 是以 2 为底的 e 的对数,约为 1.4427。
  • Math.LOG10E 是以 10 为底的 e 的对数,约为 0.4343。
console.log(Math.LOG2E); // 输出: 1.4426950408889634
console.log(Math.LOG10E); // 输出: 0.4342944819032518

13. Math.PI 的值是多少?

问题: Math.PI 的近似值是多少?

答案:
Math.PI 表示圆周率 π,约为 3.14159。

console.log(Math.PI); // 输出: 3.141592653589793

14. 如何将角度转换为弧度?

问题: 将 90 度转换为弧度。

答案:
公式为:弧度 = 角度 × (π / 180)

function degreesToRadians(degrees) {
    return degrees * (Math.PI / 180);
}

console.log(degreesToRadians(90)); // 输出: 1.5707963267948966

15. 如何将弧度转换为角度?

问题: 将 π/2 弧度转换为角度。

答案:
公式为:角度 = 弧度 × (180 / π)

function radiansToDegrees(radians) {
    return radians * (180 / Math.PI);
}

console.log(radiansToDegrees(Math.PI / 2)); // 输出: 90

16. Math.trunc() 的作用是什么?

问题: Math.trunc(4.9) 的结果是什么?

答案:
Math.trunc(x) 返回 x 的整数部分,不进行四舍五入。

console.log(Math.trunc(4.9)); // 输出: 4
console.log(Math.trunc(-3.8)); // 输出: -3

17. Math.sign() 的返回值有哪些?

问题: Math.sign(-5)Math.sign(0)Math.sign(5) 的返回值分别是什么?

答案:

  • 如果 x > 0,返回 1
  • 如果 x < 0,返回 -1
  • 如果 x == 0,返回 0
console.log(Math.sign(-5)); // 输出: -1
console.log(Math.sign(0)); // 输出: 0
console.log(Math.sign(5)); // 输出: 1

18. Math.cbrt() 的作用是什么?

问题: Math.cbrt(27) 的结果是什么?

答案:
Math.cbrt(x) 返回 x 的立方根。

console.log(Math.cbrt(27)); // 输出: 3

19. Math.hypot() 的用途是什么?

问题: Math.hypot(3, 4) 的结果是什么?

答案:
Math.hypot(x, y) 返回直角三角形的斜边长度,即 $ \sqrt{x^2 + y^2} $。

console.log(Math.hypot(3, 4)); // 输出: 5

20. Math.imul() 的作用是什么?

问题: Math.imul(2, 3) 的结果是什么?

答案:
Math.imul(a, b) 返回两个数的 32 位整数乘积。

console.log(Math.imul(2, 3)); // 输出: 6

以上是常见的 20 道与 Math 对象相关的 JavaScript 面试题及其详细解答,适合用于准备前端开发岗位的技术面试,也适合巩固自己的面向对象编程的数学思想,毕竟很多编程语言中math对象的方法都大差不差。

以下是关于 JavaScript Math 对象 的 20 道常见面试题的详细总结表格,包含题目、知识点、代码示例和常见考察点,便于大家快速查阅与复习。

编号题目描述知识点代码示例常见考察点
1Math.abs(-5) 的输出是什么?绝对值函数console.log(Math.abs(-5)); // 5理解正负数转换
2Math.ceil(3.2)Math.floor(3.8) 的结果分别是什么?向上取整 / 向下取整Math.ceil(3.2); // 4
Math.floor(3.8); // 3
取整方法的区别
3写一个函数生成 [min, max] 范围内的随机整数。随机数生成function getRandomInt(min, max) {<br> return Math.floor(Math.random() * (max - min + 1)) + min;<br>}Math.random() 使用技巧
4Math.round(2.6)Math.round(2.4) 的结果分别是什么?四舍五入Math.round(2.6); // 3
Math.round(2.4); // 2
理解四舍五入规则
5获取 3, 7, 2 中的最大值。最大值函数Math.max(3, 7, 2); // 7多参数比较
6获取 3, 7, 2 中的最小值。最小值函数Math.min(3, 7, 2); // 2多参数比较
7计算 Math.sqrt(16) 的值。平方根Math.sqrt(16); // 4数学基本运算
8使用 Math.pow() 计算 $ 2^3 $。指数运算Math.pow(2, 3); // 8替代 ** 运算符
9Math.sin(Math.PI / 2) 的值是多少?正弦函数Math.sin(Math.PI / 2); // 1弧度制理解
10Math.E 的近似值是多少?自然对数底数Math.E; // 2.71828...数学常量记忆
11解释 Math.LN2Math.LN10 的含义。自然对数Math.LN2; // 0.6931...
Math.LN10; // 2.3025...
对数概念
12解释 Math.LOG2EMath.LOG10E 的含义。对数转换Math.LOG2E; // 1.4427...
Math.LOG10E; // 0.4343...
对数转换关系
13Math.PI 的近似值是多少?圆周率Math.PI; // 3.14159...数学常量记忆
14将 90 度转换为弧度。角度转弧度function degreesToRadians(degrees) {<br> return degrees * (Math.PI / 180);<br>}单位转换公式
15将 π/2 弧度转换为角度。弧度转角度function radiansToDegrees(radians) {<br> return radians * (180 / Math.PI);<br>}单位转换公式
16Math.trunc(4.9) 的结果是什么?截断取整Math.trunc(4.9); // 4不进行四舍五入
17Math.sign(-5)Math.sign(0)Math.sign(5) 的返回值分别是什么?判断符号Math.sign(-5); // -1
Math.sign(0); // 0
Math.sign(5); // 1
符号判断逻辑
18Math.cbrt(27) 的结果是什么?立方根Math.cbrt(27); // 3数学高阶运算
19Math.hypot(3, 4) 的结果是什么?斜边计算Math.hypot(3, 4); // 5勾股定理应用
20Math.imul(2, 3) 的结果是什么?32位整数乘法Math.imul(2, 3); // 6位运算优化场景

总结说明:

  • 覆盖范围广:从基础数学函数到高级用法,适合初中级前端开发者。
  • 面试高频:如 Math.random() 生成随机数、Math.round() 四舍五入等是笔试或现场编程常见题。
  • 可拓展性强:例如 Math.hypot()Math.cbrt() 可用于图形算法、科学计算等场景。
  • 适合背诵+练习:建议配合实际编写代码验证,加深理解。
  • 地图开发:在百度,高德,腾讯地图的前端开发中,Math对象的方法是家常便饭,老曹的数个地图项目里,Math对象是百分之百会用到。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值