JavaScript | 内置对象 math对象 + 日期对象 + 数组对象 + 字符串对象 + 简单类型与复杂类型

目录

内置对象

查文档

        MDN

        如何学习对象中的方法

Math 对象

        Math 概述

        Math绝对值和三个取整方法

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

        随机数方法random()

        随机点名案例

        案例:猜数字游戏

日期对象

        Date()方法的使用

        1. 获取当前时间必须实例化

        2. Date() 构造函数的参数

        日期格式化

        封装一个函数 返回当前的时分秒 08:08:08

        获取日期的总的毫秒形式

        !!!案例:倒计时效果!!!

数组对象

        数组对象的创建

        检测是否为数组

        添加删除数组元素的方法

        添加数组元素的方法 push() 和 unshift()

        删除数组元素的方法 pop() 和 shift()

        案例: 筛选数组

        数组排序

        数组索引方法indexOf()和lastindexOf()

        案例: 数组去重(重点案例)

        数组转换为字符串

        concat()连接多个数组

         slice() 截取数组

        splice()数组删除

 字符串对象

        基本包装类型

        字符串的不可变

        根据字符返回位置

        案例:返回字符位置

        根据位置返回字符(重点)

        案例:返回字符位置

        字符串操作方法(重点)

        replace()方法

        split()方法

作业

简单类型与复杂类型

简单类型与复杂类型

堆和栈

简单类型的内存分配

复杂类型的内存分配

简单类型传参

复杂类型传参


内置对象

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

前面两种对象是JS 基础 内容,属于 ECMAScript; 第三个浏览器对象属于我们JS 独有的, 我们JS API 讲解

内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)【不关心内部怎么实现的,直接拿来使用,比如求最大值最小值】

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

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

查文档

        MDN

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

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

        如何学习对象中的方法

  1. 查阅该方法的功能
  2. 查看里面参数的意义和类型
  3. 查看返回值的意义和类型
  4. 通过 demo 进行测试

Math 对象

        Math 概述

Math 对象不是一个构造函数 ,所以我们不需要new来调用 而是直接使用里面的属性和方法即可。

跟数学相关的运算(求绝对值,取整、最大值等)可以使用 Math 中的成员。

        console.log(Math.PI); // 一个属性 圆周率
        console.log(Math.max(1, 4, 2, 13, 423, 213)); // 423
        console.log(Math.max(-1, -123, -3)); // -1
        console.log(Math.max(1, 2, 3, 'pink')); // NaN 
        console.log(Math.max()); // 如果没有参数,则结果为 - Infinity。

        Math绝对值和三个取整方法

        // 1.绝对值方法
        console.log(Math.abs(-3)); //3
        console.log(Math.abs('-1')); // 隐式转换 会把字符串型的-1转换成 数字型 1
        console.log(Math.abs('pink'));
        // 2.三个取整方法
        // (1)Math.floor()  向下取整  往最小的取值
        console.log(Math.floor(1.8)); // 直接把小数点砍掉

        // (2)Math.ceil()  往上取整  往大的取值
        console.log(Math.ceil(1.2)); // 2

        // (3)Math.round()  四舍五入
        console.log(Math.round(1.1)); //1
        console.log(Math.round(1.5)); //2
        console.log(Math.round(1.9)); //2
        console.log(Math.round(-1.1)); //-1
        console.log(Math.round(-1.5)); //-1

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

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

        var myMath = {
            PI: 3.14159263,
            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(2, 52, 34, 6, 132));
        console.log(myMath.min(2, 52, 34, 6, 132));

        随机数方法random()

        random() 方法可以随机返回一个小数,其取值范围是 [0,1),左闭右开 0 <= x < 1

        console.log(Math.random());

想要得到两个数之间的随机整数,并且包含这两个整数

  • return 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;
        }
        console.log(getRandom(1, 10));

        // 随机点名 
        var arr = ['赵一', '钱二', '孙三', '李四', '吴五', '张六', '老六'];
        console.log(arr[1]); // 钱二  这是固定的 要让arr[]里面的数字变化
        console.log(arr[getRandom(0, arr.length - 1)]);

        案例:猜数字游戏

程序随机生成一个 1~ 10 之间的数字,并让用户输入一个数字,  

1. 如果大于该数字,就提示,数字大了,继续猜;  

2. 如果小于该数字,就提示数字小了,继续猜;  

3. 如果等于该数字,就提示猜对了, 结束程序。

        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        var num = getRandom(1, 10);
        while (userNum != num) {
            var userNum = prompt('请输入您要猜的数字: 1~10之间的数字噢');
            if (userNum > num) {
                alert('数字大了,继续猜');
            } else if (userNum < num) {
                alert('数字小了,继续猜');
            }
        }
        alert('猜对了,就是数字' + num);

日期对象

Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化后才能使用  

Date 实例用来处理日期和时间

        必须要new一下才能往下写日期

        Date()方法的使用

        1. 获取当前时间必须实例化

        // 1.使用Date  如果没有参数 返回当前系统的当前时间
        var date = new Date();
        console.log(date);

        2. Date() 构造函数的参数

  • 如果Date()不写参数,就返回当前时间
  • 如果Date()里面写参数,就返回括号里面输入的时间
        // 2.参数常用的写法 数字型 2019,10,01   或者是字符串型的  '2019-10-1 8:8:8'
        var date1 = new Date(2019, 10, 1);
        console.log(date1); // 返回的是11月 不是10月
        var date2 = new Date('2019-10-1 12:25:45');
        console.log(date2);

        日期格式化

 必须要先 var date = new Date();

        var date = new Date();
        console.log(date.getFullYear());// 返回当前日期的年  2022
        console.log(date.getMonth() + 1); // 返回当前月份(0~11) 得到的要比实际的月份小一个月 记得月份+1
        console.log(date.getDate()); // 返回当前几号
        console.log(date.getDay()); // 返回的是周几  周日返回的是0

我们写一个 2019年 5月1日 星期三

        // 我们写一个 2019年 5月1日 星期三
        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]);

要想把周几变成 星期几

获取星期几是从星期日到星期六(0~6)可以把一个数组里面装上星期日 到 星期六。

一定要星期日开头!!!

        封装一个函数 返回当前的时分秒 08:08:08

        function getTime() {
            var time = new Date();
            var hour = time.getHours();
            hour = hour < 10 ? '0' + hour : hour; //又重新赋值
            var minutes = time.getMinutes();
            minutes = minutes < 10 ? '0' + minutes : minutes;
            var seconds = time.getSeconds();
            seconds = seconds < 10 ? '0' + seconds : seconds;
            return '当前的时间是' + hour + ':' + minutes + ':' + seconds;
        }
        console.log(getTime());

        获取日期的总的毫秒形式

Date 对象是基于1970年1月1日(世界标准时间)起的毫秒数

获取日期的总的毫秒形式(时间戳)  

不是当前时间的毫秒数  而是距离1970年1月1日过了多少毫秒数

        // 1.通过 valeof()  getTime()
        var date = new Date();
        console.log(date.valueOf()); // 就是我们现在时间距离1970.1.1总的毫秒数
        console.log(date.getTime());
        // 2.简单的写法(最常用阿写法)
        var date1 = +new Date(); // 返回的就是总毫秒数
        console.log(date1);
        // 3. H5 新增的 获得总的毫秒数
        console.log(Date.now()); // 返回的就是总毫秒数

        !!!案例:倒计时效果!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值