JavaScript内置对象以及相关小练习

引言:

JavaScript中对象分三种: 自定义对象 , 内置对象 ,浏览器对象

帮助文档:(如果不懂或者不太清楚内置对象的使用方法就多查文档)

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

常用的四种内置对象:

1.Math 对象
2.Date 对象
3.Array 对象
4.字符串 对象

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

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

案例:1.利用对象封装自己的数学对象 里面有 PI 最大值和最小值
代码:

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

测试结果:在这里插入图片描述
案例 :2.随机生成指定范围内的小数以及随机点名
代码:

function getRandom(min,max) { // 随机生成小数
                return Math.random() * (max - min) + min;
            }
            console.log(getRandom(1,10));

测试结果:在这里插入图片描述
随机点名代码:

 function getRandom1( min , max) {
                return Math.floor(Math.random() * (max - min) + min);
            }
            var arr = [ '方敬','戴书成','王宝强','孙弈秋']
            console.log(arr[getRandom1(0,arr.length-1)]);

测试结果:在这里插入图片描述在这里插入图片描述
二、Date 对象

  • Date 对象和 Math 对象不一样,他是一个构造函数,所以我们需要实例化后才能使用
  • Date 实例用来处理日期和时间
  1. 获取当前时间的对象实例化:
	var now = new Date();
	console.log(now);
  1. Date() 构造函数的参数:
    如果括号里面有时间,就返回参数里面的时间。例如日期格式字符串为’2019-5-1’,可以写成new Date(‘2019-5-1’) 或者 new Date(‘2019/5/1’)
    .如果Date()不写参数,就返回当前时间
    .如果Date()里面写参数,就返回括号里面输入的时间

在这里插入图片描述

  1. 获得距离1970年的总毫秒数(简便方法):
 var date1 = +new Date ();  // 获取距离1970年的总毫秒数;
 console.log(date1);
  1. 案例: 倒计时做法在这里插入图片描述代码:
// 倒计时做法
            function cutDown(time) {
                var time1 = +new Date(); //当前时间总毫秒数的获取
                var time2 = +new Date(time); // 输入时间总毫秒数的获取
                var times = (time1 - time2)/1000; // 将总毫秒数转化为总秒数
                var d = parseInt(times /60 / 60 / 24);
                //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 +'秒';
                //return d + ':' + h + ':' + m + ':' + s ;
            }
            console.log(cutDown('2020-10-30 12:00:00'));

代码测试:在这里插入图片描述

三、Array 数组对象:

var arr1 = new Array(2); 这个表示数组的长度为2,里面有2个空的数组元素
var arr2 = new Array(2,3); 这个表示里面有2个人数组元素 2,3等价于[2,3]

  1. Array.isArray() 检测是否为数组的方法 instanceOf() 运算符也可以用来检测是否为数组的方法
    在这里插入图片描述

  2. 添加删除数组元素的方法
    在这里插入图片描述在这里插入图片描述

  3. 数组排序
    在这里插入图片描述

  4. 数组索引在这里插入图片描述

  5. 案例:数组去重: 有一个数组['c','a','z','a','x','a','x','c','b'] 要求去除数组中重复的元素 在这里插入图片描述代码:

           // 数组去重
            var oldArray = ['c','a','z','a','x','a','x','c','b'];
            var newArray = [];
            for (var i = 0; i < oldArray.length; i++){
                if(newArray.indexOf(oldArray[i]) === -1){ //运用indexof()方法 返回值为-1 说明没有找到元素 则添加到新数组里面
                    newArray.push(oldArray[i]);
                }else {}
            }
            console.log(newArray);

测试结果:在这里插入图片描述
四 、字符串对象:

  1. 根据字符返回位置
    在这里插入图片描述
  2. 案例:编写一段代码,求某个字符出现的位置以及次数,例如字符串 abcdabcdaaccbx,求 a 出现的次数。

核心算法:先查找第一个a出现的位置;
然后 只要indexOf 返回的结果不是 -1 就继续往后查找;
因为indexOf 只能查找到第一个,所以后面的查找,利用第二个参数,当前索引加1,从而继续查找;

代码:

            var arr1 = "abcdabcdaaccbx";
            var num = 0;
            var index = arr1.indexOf('a');
            while (index !== -1){
                console.log(index);
                num++;
                index = arr1.indexOf('a',index+1);
            }
            console.log('字母a出现的次数为' + num +'次');

测试结果:在这里插入图片描述

  1. 根据位置返回字符(重点)
    在这里插入图片描述
  2. 案例: 判断一个字符串'aabcdoabcdexofaof' 中出现次数最多的字符并统计其次数。

核心算法:利用 charAt() 遍历这个字符串
把每个字符都存储给对象, 如果对象没有该属性,就为1,如果存在了就 +1
遍历对象,得到最大值和该字符

代码:

            var a = {};
            var char = 'aabcdoabcdexofaof';
            for (var i = 0; i < char.length; i++){
                var chars = char.charAt(i);  // chars 是得到的每一个字符
                if(a[chars]){              // a[chars]是得到的属性值
                    a[chars]++;
                }else {
                    a[chars] = 1;
                }
            }
            console.log(a);
            // 遍历对象
            var max = 0;
            var c = '';
            for (var k in a){
                if (a[k] > max ){
                    // k 是属性名 a[k]是对应属性值 类似于 var n = { a:4;b:4;c:5;},其中a就为属性名, 4就是对应的属性值;
                    max = a[k];
                    var c = k ;
                }
            }
            console.log('出现最多次数的字符为 ' + c  + ' 出现的次数为 ' + max +' 次');

代码测试:在这里插入图片描述

  1. 字符串操作方法(重点)
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值