JavaScript内置对象及案例

01-内置对象

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>内置对象title>
    <script>
        // 在javaScript中的对象分为三种:自定义对象,内置对象和浏览器对象
        // 前面两种对象是js基础内容,属于ECMAScript;第三个浏览器对象属于js独有的,在JS API讲解
        // 内置对象就是指Js语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)
        // 内置对象最大的优点就是可以帮助我们快速开发
        // JavaScript中提供了多个内置对象:Math,Date,Array,String等
    script>
head>

<body>

body>

html>

02-学会查阅MDN文档

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>学会查阅MDN文档title>
    <script>
        //学习一个内置对象的使用,要学会其常用成员的使用即可,我们可以通过文档学习,可以通过MDN/W3C来查询
        //Mozilla开发者网络(MDN)提供了有关开放网络技术(Open Web)的信息,包括HTML,CSS和万维网及HTML5应用的API

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

        // 2.2 如何学习对象中的方法
        // 1.查阅该方法的功能
        // 2.查看里面参数的意义和类型
        // 3.查看返回值的意义和类型
        // 4.通过demo进行测试
    script>
head>

<body>

body>

html>

03-数学对象Math最大值方法

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数学对象Math最大值方法title>
    <script>
        // Math数学对象 不是一个构造函数,所以不需要new来调用 而是直接使用里面的属性和方法即可
        console.log(Math.PI); //例子 一个属性 圆周率
        console.log(Math.max(1, 2, 34, 55, 99)); //99
        console.log(Math.max(-1, -3, -5)); //-1
        console.log(Math.max(1, 99, 'pink老师')); //NaN
        console.log(Math.max()); //-Infinity
    script>
head>

<body>

body>

html>

04-封装自己的数学对象

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>封装自己的数学对象title>
    <script>
        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, 9));
        console.log(myMath.max(1, 5, 9));
    script>
head>

<body>

body>

html>

05-Math绝对值和三个取整方法

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Math绝对值和三个取整方法title>
    <script>
        //Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整,最大值等)可以使用Math中的成员
        // Math.PI //圆周率
        // Math.floor() //向下取整
        // Math.ceil() //向上取整
        // Math.round() //四舍五入版 就近取整 注意 -3.5 结果是-3
        // Math.abs() //绝对值
        // Math.max() //最大值
        // Math.min() //最小值

        //    1.绝对值方法 
        console.log(Math.abs(-1)); //1
        console.log(Math.abs(1)); //1
        console.log(Math.abs('-1')); //1 隐式转换 会把字符串型 -1 转换为数字型 1
        console.log(Math.abs('pink老师')); //NaN

        // 2.三个取整方法
        // (1) Math.floor() 向下取整 往最小取值 
        console.log(Math.floor(1.1)); //1
        console.log(Math.floor(1.9)); //1
        // (2) Math.ceil() 向上取整 ceil天花板
        console.log(Math.ceil(1.1)); //2
        console.log(Math.ceil(1.9)); //2
        // (3)  Math.round() 四舍五入版 就近取整 其他数字都是四舍五入,但是 .5 特殊,往大了取 如-1.5 -1比-2大,所以是-1
        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
    script>
head>

<body>

body>

html>

06-Math随机数方法

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Math随机数方法title>
    <script>
        // 1.随机数方法 Math.random() 返回一个随机的小数 0 =< x <1
        // 2.这个方法里面里面不跟参数
        // 3.代码验证
        console.log(Math.random());
        // 4.想得到一个两数之间的随机整数,包括两个数在内
        // 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));
        // 5.随机点名
        var arr = ['张三', '张三疯', '张三疯子', '李四', '李思思'];
        // console.log(arr[0]);
        console.log(arr[getRandom(0, arr.length - 1)]);
    script>
head>

<body>

body>

html>

07-猜数字游戏

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>猜数字游戏title>
    <script>
        // 程序随机生成一个1~10之间的整数,并让用户输入一个数字
        // 1.如果大于该数字,则提示数字大了,继续猜;
        // 2.如果小于该数字,则提示数字小了,继续猜;
        // 1.如果等于该数字,则提示猜对了,结束程序;

        //案例分析:
        // (1)随机生成一个1~10之间的整数,需要用到Math.random()
        // (2)需要一直循环,直到猜到正确为止
        // (3)用while循环合适更简单
        // (4)核心算法:使用if else if多分支语句来判断大于,等于,小于

        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        var random = getRandom(1, 10); //调用这个函数
        while (true) {
            var num = prompt('请输入1~10之间的一个数字');
            if (num > random) {
                alert('你猜大了');
            } else if (num < random) {
                alert('你猜小了');
            } else {
                alert('你猜对了!');
                break; //退出整个循环,结束  不加break程序会一直循环
            }
        }
    script>

head>

<body>

body>

html>

08-课下案例

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>课下练习title>
    <script>
        //要求用户输入1~50之间的一个数字,但是只有十次猜的机会
        // 案例分析 
        // 1.利用内置对象getRanbom()随机生成一个1-50之间的整数
        // 2.for循环设置循环次数
        // 3.用if来判断结果是否正确,答对结束当前循环
        // 4.超过10次,结束当前操作
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        var random = getRandom(1, 50);
        for (i = 1; i <= 10; i++) {
            var num = prompt('请输入1~50之间的一个数字');
            if (num > random) {
                alert('猜大了');
            } else if (num < random) {
                alert('猜小了');
            } else {
                alert('猜对了');
                break;
            }
            if (i == 10) {
                alert('抱歉,你的次数已经用完');
            }
        }
    script>
head>

<body>

body>

html>

09-Date日期对象的使用

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Date日期对象的使用title>
    <script>
        // Date()日期对象 是一个构造函数 必须使用new 来调用创建我们的日期对象
        var arr = new Array(); //创建了一个数组对象
        var obj = new Object(); //创建了一个对象实例
        // 1.使用Date 如果没有参数 返回当前系统的当前时间
        var date = new Date();
        console.log(date);
        // 2.参数常用的写法 数字型 2019,10,01  或者是字符串型 '2019-10-01 8:8:8'
        var date1 = new Date(2019, 10, 1);
        console.log(date1); //返回的是11月,不是10月
        var date2 = new Date('2019-10-01 8:8:8');
        console.log(date2);
    script>
head>

<body>

body>

html>

10-格式化日期年月日星期

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>格式化日期年月日星期title>
    <script>
        // 4.3 日期格式化
        var date = new Date();
        console.log(date.getFullYear()); //返回当前日期的年份 2022
        console.log(date.getMonth() + 1); //返回当前的月份(0-11) 返回的月份小一个月,所以月份要加一
        console.log(date.getDate()); //返回的是几号  17号
        console.log(date.getDay()); //返回的是星期几 周一返回的是1 周六返回的是6 但是周日返回的是0
        // 我们写一个格式为 2022年2月17日 星期四
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var dates = date.getDate();
        // 星期几需要创建一个数组 这样才能把数字 如3 改为大写 三
        var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
        var day = date.getDay();
        console.log('今天是:' + year + '年' + month + '月' + dates + '日 ' + arr[day]);
    script>
head>

<body>

body>

html>

11-格式化日期时分秒

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>格式化日期时分秒title>
    <script>
        var date = new Date();
        console.log(date.getHours()); //获得当前的时
        console.log(date.getMinutes()); //分钟
        console.log(date.getSeconds()); //秒数
        // 要求封装一个函数 返回的是当前的时分秒 格式 08:08:08
        function getTime() {
            var time = new Date();
            var h = time.getHours();
            h = h < 10 ? '0' + h : h;
            var m = time.getMinutes();
            m = m < 10 ? '0' + m : m;
            var s = time.getSeconds();
            s = s < 10 ? '0' + s : s;
            return h + ':' + m + ':' + s;
        }
        console.log(getTime());
    script>
head>

<body>

body>

html>

12-获取日期的总的毫秒数(时间戳)

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>获取日期的总的毫秒数(时间戳)title>
    <script>
        // Date对象是基于1970年1月1日(世界标准时间)起的毫秒数
        // 我们经常利用总的毫秒数来计算时间,因为它更精确
        // 获得Date总的毫秒数(也叫时间戳) 不是当前时间的毫秒数 而是距离1970年1月1号过了多少毫秒数
        // 1.通过 valueOf() 或者 getTime() 都可以得到
        var date = new Date();
        console.log(date.valueOf()); //现在时间距离1970年1月1号过了多少时间
        console.log(date.getTime());
        // 2.简单的写法(最常用的方法)
        var date1 = +new Date(); // +new Date() 返回的就是总的毫秒数 
        console.log(date1);
        // 3.H5 新增的 获得总的毫秒数 需要考虑兼容性问题
        console.log(Date.now());
    script>
head>

<body>

body>

html>

13-倒计时案例

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>倒计时案例title>
    <script>
        //案例分析
        // 1.核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时,但是不能拿时分秒直接相减,如05分减去25分,结果会是负数
        // 2.用时间戳来做。用户输入的时间的总的毫秒数减去现在时间的毫秒数,得到的就是剩余时间的毫秒数
        // 3.把剩余时间的总的毫秒数转换为天,时,分,秒(时间戳转换为时分秒)
        // 转换公式如下
        // d = parseInt(总秒数 / 60 / 60 / 24); //计算天数
        // h = parseInt(总秒数 / 60 / 60 % 24); //计算小时
        // m = parseInt(总秒数 / 60 % 60); // 计算分钟
        // s = parseInt(总秒数 % 60); // 计算秒数
        function countDown(time) {
            var nowTime = +new Date(); //返回的当前时间总的毫秒数
            var inputTime = +new Date(time) //返回的是用户输入时间总的毫秒数
            var times = (inputTime - nowTime) / 1000; //剩余时间总的毫秒数 一秒等于1000毫秒
            var d = parseInt(times / 60 / 60 / 24); //时间不能是小数,必须是整数,所以要用parseInt
            d = d < 10 ? '0' + d : d;
            var h = parseInt(times / 60 / 60 % 24);
            h = h < 10 ? '0' + h : h;
            var m = parseInt(times / 60 % 60);
            m = m < 10 ? '0' + m : m;
            var s = parseInt(times % 60);
            s = s < 10 ? '0' + s : s;
            return d + '天' + h + '时' + m + '分' + s + '秒';
        }
        console.log(countDown('2022-2-17 11:25:56'));
        var date = new Date(); //当前时间是多少
        console.log(date);
    script>
head>

<body>

body>

html>

效果展示

JavaScript内置对象及案例_第1张图片

14-创建数组的两种方式(复习)

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>创建数组的两种方式title>
    <script>
        //1.利用字面量创建数组
        var arr = [1, 2, 3]; //数组的创建
        console.log(arr[0]); //数组的使用

        //2.利用new Array()
        // var arr1 = new Array(); 创建了一个空的数组
        //var arr1 = new Array(2); 这个2表示数组的长度是2 里面有2个空的数组元素
        var arr1 = new Array(2, 3); //等价于[2,3] 这样写表示里面有2个数组元素 2和3  必须写两个以上的数组元素,才算是创建了一个包含参数的数组
        console.log(arr1);
    script>
head>

<body>

body>

html>

15-检测是否为数组两种方式

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>检测是否是数组方式title>
    <script>
        //翻转数组
        function reverse(arr) {
            //if (arr instanceof Array) {
            if (Array.isArray(arr)) {
                var newArr = [];
                for (i = arr.length - 1; i >= 0; i--) {
                    newArr[newArr.length] = arr[i];
                }
                return newArr;
            } else {
                return 'error 这个参数要求必须是数组格式'
            }
        }

        console.log(reverse([1, 2, 3]));
        console.log(reverse(1, 2, 3)); //[] 空的数组

        // 检测是否是数组
        // (1) instanceof 运算符 它可以检测是否为数组
        var arr = [];
        var obj = {};
        console.log(arr instanceof Array); //true
        console.log(obj instanceof Array); //false
        // (2) Array.isArray(参数); // H5新增的方法 IE9以上版本支持
        console.log(Array.isArray(arr)); //true
        console.log(Array.isArray(obj)); //false
    script>
head>

<body>

body>

html>

16-添加删除数组元素方法

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>添加删除数组元素方法title>
    <script>
        // 1.添加数组元素

        // 方法一.push() 在数组的末尾 添加一个或者多个数组元素
        var arr = [1, 2, 3];
        // arr.push(4, 'pink');
        console.log(arr.push(4, 'pink')); //5
        console.log(arr);
        //(1) push 可以给数组追加新元素
        //(2) push() 参数直接写数组元素就可以了
        //(3) push完毕之后,返回的结果是 新数组的长度
        //(4) 原数组也会发生变化

        // 方法二.unshift 在数组的开头 添加一个或者多个数组元素
        console.log(arr.unshift('red', 'purple'));
        // arr.unshift('red', 'purple');
        console.log(arr);
        //(1) unshift 可以给在数组前面追加新元素
        //(2) unshift() 参数直接写数组元素就可以了
        //(3) unshift完毕之后,返回的结果是 新数组的长度
        //(4) 原数组也会发生变化

        // 2.删除数组元素

        // 方法一:pop() 它可以删除数组的最后一个元素
        //arr.pop(); //不跟参数
        console.log(arr); //['red', 'purple', 1, 2, 3, 4] 删除了pink
        console.log(arr.pop()); //返回值 返回的是pink
        //(1) pop 可以删除数组的最后一个元素,记住一次只能删除一个元素
        //(2) pop() 没有参数
        //(3) pop完毕之后,返回的结果是 被删除的那个元素 pink
        //(4) 原数组也会发生变化

        // 方法二:shift() 可以删除数组的第一个元素
        //arr.shift(); // ['purple', 1, 2, 3, 4] 删除了第一个元素 red
        console.log(arr);
        console.log(arr.shift());
        //(1) shift 可以删除数组的第一个元素,记住一次只能删除一个元素
        //(2) shift() 没有参数
        //(3) shift完毕之后,返回的结果是 被删除的那个元素  red
        //(4) 原数组也会发生变化
    script>
head>

<body>

body>

html>

17-筛选数组

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>筛选数组title>
    <script>
        //有一个包含工资的数组[1500,1200,2000,2100,1800],要求把数组中超过2000的删除,剩余的放到新数组里
        var arr = [1500, 1200, 2000, 2100, 1800];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] < 2000) {
                //newArr[newArr.length] = arr[i];
                newArr.push(arr[i]); //新数组本来是空的,把小于2000的元素一次追加到新数组中
            }
        }
        console.log(newArr);
    script>
head>

<body>

body>

html>

18-数组排序

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组排序title>
    <script>
        // 1.翻转数组
        var arr = ['pink', 'red', 'blue'];
        arr.reverse(); //reverse() 颠倒数组中元素的顺序,无参数
        console.log(arr);
        // 2.数组排序(冒泡排序)
        var arr1 = [3, 4, 7, 1]; //适用于个位数排序
        arr1.sort(); //sort() 对数组中的元素进行排序
        console.log(arr1);
        //特殊情况,需要加函数处理
        var arr2 = [13, 4, 77, 1, 7];
        arr2.sort(function(a, b) {
            // return a - b; 升序的顺序排序
            return b - a; //降序的顺序排序
        });
        console.log(arr2); //[1, 13, 4, 7, 77] 排序会出错 加函数后输出结果为[1, 4, 7, 13, 77]
    script>
head>

<body>

body>

html>

19-获取数组元素索引号

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>获取数组元素索引号title>
    <script>
        //1.返回数组元素索引号方法 indexOf(数组元素) 作用就是返回该数组元素的索引号 从前面往后面查找
        //它只返回第一个满足条件的索引号
        //var arr = ['red', 'green', 'blue', 'pink', 'blue'];
        //  console.log(arr.indexOf('blue')); //2
        //如果在数组中找不到该元素,则返回的是-1
        //var arr = ['red', 'green', 'pink'];
        // console.log(arr.indexOf('blue')); //-1

        //2.返回数组元素索引号方法 lastIndexOf(数组元素) 作用就是返回该数组元素的索引号 从后往前查找
        // 如果在数组中找不到该元素,则返回的是-1
        //console.log(arr.lastIndexOf('blue')); //-1
        var arr = ['red', 'green', 'blue', 'pink', 'blue'];
        console.log(arr.lastIndexOf('blue')); //4
    script>
head>

<body>

body>

html>

20-数组去重案例

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组去重案例title>
    <script>
        //数组去重 重点案例 (面试常考)
        // 有一个数组['c','a','z','a','x','a','x','c','b'],要求去除数组中重复的元素
        // 案例分析
        // (1) 把旧数组里面不重复的元素选取出来放到新数组中,重复的元素只保留一个,放到新数组中去重
        // (2) 核心算法:遍历旧数组,然后拿着旧数组去查询新数组,如果该元素在新数组里面没有出现过,我们就添加,否则不添加
        // (3) 我们怎么知道该元素没有存在 用新数组.indexOf(数组元素) 如果返回-1时,就说明新数组里面没有该元素

        // 封装一个去重的函数 unique 独一无二的
        function unique(arr) {
            var newArr = [];
            for (var i = 0; i < arr.length; i++) {
                if (newArr.indexOf(arr[i]) === -1) {
                    newArr.push(arr[i])
                }
            }
            return newArr;
        }
        var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']);
        console.log(demo);
    script>
head>

<body>

body>

html>

21-数组转换为字符串

DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组转换为字符串title>
    <script>
        //方法一 toString() 将数组转换为字符串
        var arr = [1, 2, 3];
        console.log(arr.toString()); //1,2,3
        //方法二 join(分隔符)
        var arr1 = ['green', 'blue', 'pink'];
        console.log(arr1.join()); //green,blue,pink
        console.log(arr1.join('-')); // green-blue-pink join后面的括号可以输入自己想要的分隔符
        console.log(arr1.join('&')); //green&blue&pink
    script>
head>

<body>

body>

html>

你可能感兴趣的:(JavaScript,javascript,前端,html)