【JavaScript】内置对象 ③ ( Math 内置对象 | Math 内置对象简介 | Math 内置对象的使用 )

文章目录

  • [一、Math 内置对象](#一、Math 内置对象)
    • [1、Math 内置对象简介](#1、Math 内置对象简介)
    • [2、Math 内置对象的使用](#2、Math 内置对象的使用)
  • 二、代码示例
    • [1、代码示例 - Math 内置对象的使用](#1、代码示例 - Math 内置对象的使用)
    • [2、代码示例 - 封装 Math 内置对象](#2、代码示例 - 封装 Math 内置对象)

一、Math 内置对象


1、Math 内置对象简介

JavaScript 中的 Math 内置对象 是一个 全局对象 , 该对象 提供了 常用的 数学常数 和 数学计算函数 ;

利用 Math 对象 的 函数和常数 , 可以完成各种数学运算任务 , 如 :

  • 获取最大 / 最小值
  • 求绝对值
  • 随机数生成
  • 三角函数计算
  • 对数计算
  • 取整

Math 文档地址 : https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math

2、Math 内置对象的使用

Math 不是 构造函数 , 其所有的 属性 和 方法 都是静态的 , 不需要使用 new 操作符

JavaScript 引擎初始化完毕后 , 该 Math 内置对象就会被创建 , 可以直接调用 Math 对象 ;

在代码中 , 可以直接 通过调用

  • Math.属性名
javascript 复制代码
        // 打印 Math 内置对象的常量
        // 输出 : 3.141592653589793
        console.log(Math.PI)
  • math.方法名()
javascript 复制代码
        // 调用 Math 内置对象的方法
        // 输出 : 3
        console.log(Math.max(1, 2, 3))

的方式 , 调用该 Math 内置对象的 属性 和 方法 ;

二、代码示例


1、代码示例 - Math 内置对象的使用

完整代码示例 :

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        // 打印 Math 内置对象的常量
        // 输出 : 3.141592653589793
        console.log(Math.PI)

        // 调用 Math 内置对象的方法
        // 输出 : 3
        console.log(Math.max(1, 2, 3))
    </script>
</head>

<body>
</body>

</html>

执行结果 :

2、代码示例 - 封装 Math 内置对象

自己自定义一个对象 , 封装 一个 自定义数学计算对象 , 提供 圆周率 值 属性 , 和 求 最大值 的方法 ;

参考 【JavaScript】对象 ① ( 对象概念 | 对象使用场景 | 使用字面量创建对象 | 空对象字面量 | 小括号 / 中括号 / 大括号 作用 ) 博客 , 使用字面量创建对象 代码 ;

javascript 复制代码
var person = {  
    name: "Tom",  
    age: 18,  
    hello: function() {  
        return this.name+ " is " + this.age + " years old";  
    }  
};

完整代码示例 :

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <!-- 设置 meta 视口标签 -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>JavaScript</title>
    <style></style>
    <script>
        var math = {
            // 封装 圆周率 属性
            PI: Math.PI,

            // 封装 求最大值的方法
            max: function() {
                // 此处不知道输入多少个参数 , 使用 arguments 获取不同个数的实参
                var max = arguments[0]
                for (var i = 0; i < arguments.length; i++) {
                    if (arguments[i] > max) {
                        max = arguments[i]
                    }
                }
                return max
            }
        }

        // 调用自定义对象的属性
        console.log(math.PI)

        // 调用自定义对象的方法
        console.log(math.max(9, 5, 2, 7))
    </script>
</head>

<body>
</body>

</html>

执行结果 :

相关推荐
HjhIron几秒前
实战 React + JWT + Zustand:从零搭建登录鉴权系统
前端
小棉花的ai跨境之旅1 分钟前
Codex 子 Agent 分工实战:Sol 当军师、Luna 当搬砖工,单任务成本压到 $0.61
javascript
caimouse20 分钟前
ReactOS 图形系统分析(53):系统库存对象 — stockobj.c
c语言·开发语言·spring
晴天1622 分钟前
DeepSeek Harness 全景技术解析-Day23
前端·deepseek
风月说与山鬼29 分钟前
三、uni-app页面配置(pages.json)
前端·uni-app
daols8833 分钟前
vue 实现基于 vxe-table 构建多维度产品对比表
前端·javascript·vue.js
前端 贾公子36 分钟前
第08章:中间件(5)
服务器·前端·javascript
ZJU_统一阿萨姆1 小时前
【推理优化进阶】通信关键路径:NCCL、RDMA 与计算通信重叠
开发语言·人工智能·语言模型·架构·系统架构
我不是疯子是傻子1 小时前
Qt 程序打包部署全攻略:从 windeployqt 到 Inno Setup 的静默安装与版本迭代实战
开发语言·qt
tech_zjf1 小时前
当 AI 把 Next.js Route 越写越快:我为什么做了 next-route-kit
前端·后端