51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

JavaScript——内置对象(Math对象、日期对象)

内置对象

JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象

前面两种对象是JS基础内存,属于ECMAScript,第三种浏览器对象属于我们JS独有的。

内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。

内置对象最大的优点就是帮助我们快速开发

JavaScript提供了多个内置对象:Math、Date、Array、String等

查询MDN文档

学习一个内置对象的使用,只要学会其常用成员的使用即可。

我们可以通过查文档学习:MDN和W3C

Mozilla开发者网络(MDN)提供了有关开放网络技术(Open Web)的信息,包括HTML、CSS和万维网以及HTML5应用的API。

MDN:https://developer.mozilla.org/zh-CN/

学习对象中的方法

1.查阅方法的功能

2.查阅里面参数的意义和类型

3.查看返回值的意义和类型

4.通过demo进行测试

Math对象

Math数学对象,不是一个构造函数,所以我们不需要new来调用,而是直接使用里面的属性和方法即可,跟数学相关的运算(求绝对值,取整、最大值等)可以使用Math中的成员。

    console.log(Math.PI); //一个属性,圆周率
    console.log(Math.max(1, 98, 26)); //输出最大值98
    console.log(Math.max(1, 98, '岳泽以')); //NaN 如果有任一参数不能被转换为数值,则结果为 NaN。
    console.log(Math.max()); //-Infinity 如果没有参数,则结果为 - Infinity。

案例:封装自己的数学对象

利用对象封装自己的数学对象,里面有PI最大值和最小值

    var myMath = {
        PI: 3.141592653,
        max: function() {
            var max = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                if (arguments[i] > max) {
                    max = arguments[i];
                }
            }
            return max;
        },
        min: function() {
            var min = arguments[0];
            for (var i = 1; i < arguments.length; i++) {
                if (arguments[i] < min) {
                    min = arguments[i];
                }
            }
            return min;
        }
    }
    console.log(myMath.PI);
    console.log(myMath.max(1, 5, 8));
    console.log(myMath.min(1, 5, 8));

Math绝对值和三个取整方法

Math中的常用成员

| 成员 | 属性 | |-----------------------|---------------------| | Math.PI | 圆周率 | | Math.floor() | 向下取整 | | Math.ceil() | 向上取整 | | Math.round() | 四舍五入(就近取整)-3.5结果是-3 | | Math.abs() | 绝对值 | | Math.max()/Math.min() | 求最大值和最小值 |

绝对值方法

    console.log(Math.abs(1)); //1
    console.log(Math.abs(-1)); //1
    console.log(Math.abs('-1')); //隐式转换,会把字符串型-1转换为数字型
    console.log(Math.abs('zeyi')); //NaN

三个取整方法

1.Math.floor() 向下取整,往最小了取值

    console.log(Math.floor(1.1)); //1
    console.log(Math.floor(1.9)); //1

2.Math.ceil() 向上取整,往最大了取值

    console.log(Math.ceil(1.1)); //2
    console.log(Math.ceil(1.9)); //2

3.Math.round(() 四舍五入

    console.log(Math.round(1.5)); //2
    console.log(Math.round(1.2)); //1
    console.log(Math.round(-1.1)); //-1
    console.log(Math.round(-1.5)); //-1

注意:其他数字都是四舍五入,但是.5特殊,它往大了取,比如-1.5取-1而不取-2是因为-1>-2。

Math随机数方法

Math对象随机数方法:random() 返回一个随机的小数

返回的随机小数范围:0 =< x < 1

    console.log(Math.random());//随机一个小数,刷新变化

我们想要得到俩个数之间的随机整数,并且包含这2个整数

//Math.floor(Math.random() * (max - min + 1)) + min;
    function getRandom(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    console.log(getRandom(1, 10));

随机点名:

    function getRandom(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    var arr = ['张三', '李四', '王五'];
    console.log(arr[getRandom(0, arr.length - 1)]);

日期对象

Date()日期对象是一个构造函数,必须使用new来调用创建我们的日期对象。

使用Date

    var date = new Date();
    console.log(date);

参数常用写法

数字型:2022,10,09

    var date1 = new Date(2022, 04, 09);
    console.log(date1);//返回值大一月

字符串型:'2022-10-09 8:8:8' (常用写法)

    var date2 = new Date('2022-04-09 8:8:8');
    console.log(date2);

注意:

  • Date对象和Math对象不一样,他是一个构造函数,所以我们需要实例化后才能使用。
  • Date实例用来处理日期和时间。
  • Date获取当前时间必须实例化,如果没有参数,返回当前系统的当前时间。
  • 如果括号里面有时间,就返回参数里面的时间。

日期格式化

| 方法名 | 说明 | 代码 | |---------------|------------|--------------------| | getFullYear() | 获取当年 | dObj.getFullYear() | | getMonth() | 获取当月(0-11) | dObj.getMonth() | | getDate() | 获取当天日期 | dObj.getDate() | | getDay() | 获取星期几(0-6) | dObj.getDay() | | getHours() | 获取当前小时 | dObj.getHours() | | getMinutes() | 获取当前分钟 | dObj.getMinutes() | | getSeconds() | 获取当前秒钟 | dObj.getSeconds() |

    //单个格式化
    var date = new Date();
    console.log(date.getFullYear()); //返回当前日期的年
    console.log(date.getMonth()); //返回的月份小一个月
    console.log(date.getDate()); //返回的是几号
    console.log(date.getDay()); //周一返回的是1 周六返回6 周日返回0

格式化为 2022 年 4 月 9 日 星期六:

    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var dates = date.getDate();
    var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
    var day = date.getDay();
    console.log('今天是:' + year + '年' + month + '月' + dates + '日' + arr[day]);

格式化时分秒:

    //单个格式化
    var date = new Date();
    console.log(date.getHours()); //时
    console.log(date.getMinutes()); //分
    console.log(date.getSeconds()); //秒
    //封装格式为 08:08:00
    function getTimes() {
        var h = date.getHours();
        h = h < 10 ? '0' + h : h;
        var m = date.getMinutes();
        m = m < 10 ? '0' + m : m;
        var s = date.getSeconds();
        s = s < 10 ? '0' + s : s;
        return h + ':' + m + ':' + s;
    }
    console.log(getTimes());

时间戳

获取日期的总的毫秒数(时间戳),不是当前时间的毫秒数,而是距离1970年1月1日过了多少毫秒数。

    var date = new Date();
    console.log(date.valueOf());
    //或者
    console.log(date.getTime());

    //简单写法(最常用的方法)
    var date1 = +new Date();
    console.log(date1);

    //更简单方法,H5新增的
    console.log(Date.now());
赞(3)
未经允许不得转载:工具盒子 » JavaScript——内置对象(Math对象、日期对象)