内置对象 API Math对象、Data对象、Array对象、String对象

Javascript分三种对象:自定义对象、内置对象、浏览器对象
前两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于我们JS独有的。

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

常用的Math对象
Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值,取整,最大值等)可以使用Math中的成员。

Math.PI圆周率
Math.floor()向下取整
Math.ceil()向上取整
Math.round()四舍五入 就近取整
Math.abs()绝对值
Math.max()/Math.min()求最大值和最小值
// 函数封装自己的数学方法 模仿Math内部
        // 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, 4, 6, 8));
        // console.log(myMath.min(1, 4, 6, 8));

        // 绝对值方法
        console.log(Math.abs(1)); // 1
        console.log(Math.abs(-1)); // 1
        console.log(Math.abs('-1')); // 隐式转换 把字符串 -1 转换为数字型
        console.log(Math.abs('pink')); // 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.9)); // 2
        console.log(Math.ceil(1.9)); // 2

        // (3)Math.round() 四舍五入  其他数字都是四舍五入,但是 .5 特殊 它往大了取值
        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

        // 1.Math对象随机数方法,  random()  返回一个随机的小数  0 =< x < 1
        // 2.这个方法里不跟参数
        // 3.代码验证
        console.log(Math.random());
        // 4.得到两个数字之间的随机整数,  并且  包含这两个数
        function getRandom(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }
        console.log(getRandom(1, 10));
        // 5.随机点名
        var arr = ['小明', '小红', '小白', '小李'];
        console.log(arr[getRandom(0, arr.length - 1)]);
        
        // 猜数字
        // 1.随机生成一个1~10之间的整数
        // 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;
            }
        }

常用的Data对象
日期格式化

方法名说明—代码
getFullYear()获取当前年份 Obj.getFullYear()
getMonth()获取当前月份 Obj.getMonth()
getDate()获取当前日期 Obj.getDate()
getDay()获取星期几(周日0到周六6) Obj.getDay()
getHours()获取当前小时 Obj.getHours()
getMinutes()获取当前分钟 Obj.getMinutes()
getSeconds()获取当前秒钟 Obj.getSeconds()
// 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-1 8:8:8'
        var date1 = new Date(2019, 10, 1);
        console.log(date1);
        var date2 = new Date('2019-10-1 8:8:8');
        console.log(date2);

        // 格式化日期  年月日
        var date = new Date();
        console.log(date.getFullYear()); // 返回当前年份  2021
        console.log(date.getMonth() + 1); // 返回月份  返回的月份小 1 个月  记得月份 + 1 
        console.log(date.getDate()); // 返回的是 几号
        console.log(date.getDay()); // 周日返回的是 0 ,周一返回 1 周六返回 6
        console.log(date.getHours()); // 小时
        console.log(date.getMinutes()); // 分钟
        console.log(date.getSeconds()); // 秒中国
        // 写一个2021年 3月 26日 星期五
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var dates = date.getDate();
        var day = date.getDay();
        var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', ]
        console.log(year + '年' + month + '月' + dates + '日 ' + arr[day]);
        // 格式化时分秒

        // 要求封装一个函数返回当前的时分秒  格式 08:08:08
        function getTime() {
            var time = new Date();

            var hours = date.getHours();
            hours = hours < 10 ? '0' + hours : hours;

            var minutes = date.getMinutes();
            minutes = minutes < 10 ? '0' + minutes : minutes;

            var seconds = date.getSeconds();
            seconds = seconds < 10 ? '0' + seconds : seconds;

            return hours + ':' + minutes + ':' + seconds
        }
        console.log(getTime());

        // 获得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());

倒计时
在这里插入图片描述

// 倒计时案例
        function conutDown(time) {
            var nowTime = +new Date(); // 总的毫秒数
            var inputTime = +new Date(time); // 输入的毫秒数
            var times = (inputTime - nowTime) / 1000; // times 剩余时间总的毫秒数
            var d = parseInt(times / 60 / 60 / 24); // 天数
            var h = parseInt(times / 60 / 60 % 24); // 小时
            var m = parseInt(times / 60 % 60); // 分钟
            var s = parseInt(times % 60); // 秒钟
            d = d < 10 ? '0' + d : d;
            h = h < 10 ? '0' + h : h;
            m = m < 10 ? '0' + m : m;
            s = s < 10 ? '0' + s : s;
            return d + '天 ' + h + ':' + m + ':' + s;
        }
        console.log(conutDown('2021-4-1 18:00:00'));

常用的Array对象
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
拼接数组 + 截取数组
在这里插入图片描述

// 创建数组的两种方式
        // 1.利用数组字面量
        var arr0 = [1, 2, 3];
        console.log(arr0[0]);
        // 2.利用new Array()
        var arr1 = new Array(); // 创建了一个空的数组
        var arr2 = new Array(2); // 表示数组的长度为 2 ,里面有两个空的数组元素
        var arr3 = new Array(2, 3); // 等价于[2,3], 里面有2个数组元素 2 和 3
        console.log(arr0, arr1, arr2, arr3);

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

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

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

        // 3. pop 删除数组结尾 一个 数组元素,只能删除一个
        console.log(arr.unshift('red'));
        console.log(arr);
        // (1) pop是可以删除数组结尾 一个 数组元素
        // (2) pop() 参数直接些数组元素就可以了
        // (3) pop 完毕后,返回结果是  删除的数组元素
        // (4) 原数组也会发生变化

        // 4. shift 删除数组第一个元素
        console.log(arr.unshift('red'));
        console.log(arr);
        // (1) shift是可以 删除数组第一个元素  只能删除一个
        // (2) shift() 参数直接些数组元素就可以了
        // (3) shift 完毕后,返回结果是  删除的数组元素
        // (4) 原数组也会发生变化

        // 筛选数组
        var arr = [1500, 1200, 2000, 2100, 1800];

        function getSum() {
            var newArray = [];
            for (var i = 0; i <= arr.length; i++) {
                if (arr[i] > 2000) {
                    newArray.push(arr[i]);
                }
            }
            return newArray;
        }
        console.log(getSum());

        // 数组排序
        // 1.翻转数组
        function getArr() {
            var arr = ['pink', 'red', 'blue'];
            arr.reverse();
            return arr;
        }
        console.log(getArr());

        // 2.数组排序 (冒泡排序)
        // sort方法 单独使用 只能够排序个位数的数组
        function getNewArr() {
            var arr = [3, 14, 6, 1];
            arr.sort(function(a, b) {
                // return a - b; 升序的顺序排序
                return b - a; // 降序的顺序排序
            });
            return arr
        }
        console.log(getNewArr());


        // 返回数组元素数组索引的方法  indexOf(数组元素) 作用返回该数组元素的索引号  从 前 面开始查找
        var arr = ['red', 'green', 'blue', 'pink', 'blue'];
        // 只返回第一个满足条件的数组元素的索引号
        console.log(arr.indexOf('blue')); // 2
        // 如果在该数组找不到该元素  则返回 -1
        console.log(arr.indexOf('black')); // -1
        // lastIndexOf(数组元素) 作用返回该数组元素的索引号  从 后 面开始查找
        console.log(arr.lastIndexOf('blue')); // 4

        // 数组去重
        var arr = ['a', 'b', 'c', 'c', 'd', 'd', 'e', 'f'];

        function getArrs(arr) {
            var newArr = [];
            for (var i = 0; i < arr.length; i++) {
                if (newArr.indexOf(arr[i]) === -1) {
                    newArr.push(arr[i]);
                }
            }
            return newArr;
        };
        console.log(getArrs(arr));

        // 数组转换为字符串
        // 1.tostring()
        var arr = [1, 2, 3];
        console.log(arr.toString());
        // 2.join(分隔符)
        console.log(arr.join('-'));
        console.log(arr.join('&'));

        // concat 拼接数组
        var newArr = ['a', 'b', 'c'];
        console.log(arr.concat(newArr));
        // splice 截取数组
        console.log(newArr.splice(0, 2));

常用的String对象

// 基本包装类型: 就是把简单数据类型 包装 成复杂数据类型, 这样简单数据类型就有了属性和方法
        var str = 'andy';
        console.log(str.length);
        // 按道理简单数据类型是没有 属性 和 方法的,而对象才有 属性 和 方法 , 但上面的代码却可以执行,这是因为js会把简单数据类型 包装 成复杂数据类型  其执行过程如下:

        // 1.生成临时变量,把简单数据类型包装为复杂数据类型
        var temp = new String('andy');
        // 2.赋值给我们声明的字符变量
        str = temp;
        // 3.销毁临时变量
        temp = null;
        // ---------------------------------------------------------------------------------
        // 字符串的不可变  指在内存中新开辟了一块空间,变量的指向改变到新的字符串
        var str = 'abc';
        str = 'hello';
        // 当重新赋值时,常量 'abc' 不会被修改  还存在内存中
        // 重新给字符串 赋值,在内存中新开辟了一块空间,这个特点就是字符串的不可变
        // 由于字符串的不可变,在大量拼接字符串时会有效率问题

        // var str = '';
        // for (var i = 1; i <= 100000; i++) { str += i; }
        // console.log(str); 这个结果需要花费大量时间来显示,因为需要不断的开辟空间

        // 字符串所有的方法,都不会修改字符串本身,操作完成会返回一个新的字符串(在内存开辟新的空间)
        // ------------------------------------------------------------------------------------
        // 根据 字符 返回 位置 str.indexOf('要查找的字符',[起始位置])
        var str = '哔哩哔哩-西里西里';
        console.log(str.indexOf('哩')); // 1
        console.log(str.indexOf('西', 6)); // 7  从索引号6 的位置开始往后查找

        // 返回字符位置---查找字符中所有 o 出现的位置以及次数
        var str = 'abcsdcodfofdsfo';
        var index = str.indexOf('o'); // 获得 o 第一次出现的 索引号
        var num = 0; // 声明 o 出现的次数
        while (index != -1) {
            console.log(index); // o != -1  输出  6
            num++; // 每输出一次 o 的位置, num + 1
            index = str.indexOf('o', index + 1); // 从 6+1 开始查找 o ,并赋值给 index = 9
        }
        console.log('o 出现的次数是:' + num);
        // ------------------------------------------------------------------------------------
        // 根据 位置 返回 字符
        // 1.charAt(index)  根据位置返回字符
        var str = 'andy';
        console.log(str.charAt(3));
        // 遍历所有字符
        for (var i = 0; i <= str.length - 1; i++) {
            console.log(str.charAt(i));
        };
        // 2.charCodeAt(index) 返回相应索引号的字符ASCII值  目的:判断用户按下那个键
        console.log(str.charCodeAt(0)); // 键盘 a 的ASCII值为 97;
        // 3.str[index] H5 新增的
        console.log(str[0]); // a

        // 返回字符位置---查找字符中出现次数最多的字符,并统计次数
        // 利用chartAt()遍历字符串;
        // 把每个字符串都储存给对象,如果对象没有该属性,就为1,如果存在就 +1
        // 遍历对象,得到最大值和该字符串
        var str = 'abcsdcodfofdsfoo';
        var o = {};
        for (var i = 0; i <= str.length; i++) {
            var chars = str.charAt(i);
            if (o[chars]) {
                o[chars]++;
            } else {
                o[chars] = 1;
            }
        }
        console.log(o);
        // 遍历对象 for in
        var max = 0;
        var ch = '';
        for (var k in o) {
            // k 得到属性名
            // o[k] 得到里面的属性值
            if (o[k] > max) {
                max = o[k];
                ch = k;
            }
        }
        console.log('次数最多字符' + ch);
        console.log('最多次数' + max);
        // ------------------------------------------------------------------------------------
        // 字符串操作方法
        // 1.concat('字符串1','字符串2'...)  拼接字符串
        var str = 'andy';
        console.log(str.concat('Marvin'));

        // 2.substr('截取起始位置(索引号)','截取字符个数');
        console.log(str.substr(2, 2));

        // 3.替换字符串 replace('被替换字符','替换后的字符')  只替换第一个字符
        console.log(str.replace('a', 'A'));
        // 替换所有字符串 中 所有 o
        var str1 = 'abcsdcodfofdsfoo';
        while (str1.indexOf('o') !== -1) {
            str1 = str1.replace('o', '***');
        }
        console.log(str1);

        // 4.字符串转换为数组 split('分隔符')  取决于 字符串 用什么符号隔开的, 字符串连接在一起,只能转换为一个数组元素
        var strs = '1,3,4'
        console.log(strs.split(','));

        // 5.转行大写
        var str = 'andy';
        console.log(str.toUpperCase());
        var str = 'ANDY';
        // 6.转行小写
        console.log(str.toLowerCase());

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中的对象分为三种:自定义对象内置对象和浏览器对象。自定义对象是开发者根据自己的需求创建的对象内置对象JavaScript语言自带的一些对象,如Math、Date、ArrayString等,它们提供了一些常用的或是最基本而必要的功能(属性和方法)。浏览器对象是指在浏览器环境中使用的对象,如window、document等。\[1\] 在JavaScript中,创建数组对象有两种方式:字面量方式和new Array()。可以使用instanceof运算符来判断一个对象是否属于数组类型,也可以使用Array.isArray()方法来判断一个对象是否为数组。例如,使用arr instanceof Array可以判断arr是否为数组,使用Array.isArray(arr)也可以判断arr是否为数组。\[2\] Date对象是基于1970年1月1日(世界标准时间)起的毫秒数。可以使用new Date()来实例化一个Date对象。Date对象有一些方法可以获取对象的原始值,如valueOf()和getTime()。另外,HTML5中提供了一个方法Date.now()来获取当前时间的毫秒数,但这个方法在兼容性方面可能存在问题。\[3\] #### 引用[.reference_title] - *1* *2* *3* [前端学习之JavaScript——内置对象](https://blog.csdn.net/Jane_xxxxxy/article/details/107926688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值