重拾JS-13-内置对象

本文详细介绍了JavaScript中的Math对象,包括其属性和方法的使用,如圆周率、最大值、最小值等,并封装了一个自定义的数学对象。接着讨论了随机数生成及其在猜数字游戏中的应用。此外,还讲解了日期对象的创建和操作,如获取年、月、日、时、分、秒,并实现了一个日期案例。最后,探讨了数组的各种操作,如翻转、添加/删除元素、筛选、排序和去重,以及数组与字符串的转换。文章以一个倒计时案例作为实践演示。
摘要由CSDN通过智能技术生成

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

前面两种对象是JS基础内容,属于ECMAScript,第三种属于JS独有的

Math对象中的一些属性和方法以及封装一个自己的数学对象

    //Math数学对象的一些属性和方法
    console.log(Math.PI);//输出圆周率
    console.log(Math.max(1,99,56));//输出99
    console.log(Math.max(-1,-10));//输出-1
    console.log(Math.max(1,99,'黎明'));//输出NaN
    console.log(Math.max());//输出-infinity


    //2.三个取整方法,(1)向下取整
    console.log(Math.floor(1.8));//1
    //向上取整
    console.log(Math.ceil(1.2));//2
    //四舍五入
    console.log(Math.round(2.1));//2
    console.log(Math.round(2.5));//3
    console.log(Math.round(-1.1));//-1
    console.log(Math.round(-1.5));//-1,往大了取

//自己尝试封装一个对象
  var myMath={
        PI:3.1415926,
         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.PI);
    console.log(myMath.max(4,8,13));
    console.log(myMath.min(2,4,7));

Math对象的随机数方法

//Math对象随机数方法 random()返回一个随机的小数[0,1)
    console.log(Math.random());
    //2.得到两个数之间的随机整数,并且包含这两个数
    function getRandom(min,max){
        return Math.floor(Math.random()*(max-min+1))+min;
    }
    console.log(getRandom(1,10));
    var arr=['黄轩','热依扎','德福','德宝','大有叔']
    console.log(arr[getRandom(0,arr.length-1)]);

猜数字游戏案例:

 function getRandom(min,max){
        return Math.floor(Math.random()*(max-min+1))+min;
    }
    var num=getRandom(1,10);
    // var num1=prompt('请输入你的幸运数学');
    // if(num1>num){
    //     alert('你输入的数字大了');
    // }else if(num1<num){
    //     alert('你输入的数字小了')
    // }else{
    //     alert('恭喜你,你就是幸运之星')
    // }
    while(true){
    var num1=prompt('请输入你的幸运数学');
    if(num1>num){
        alert('你输入的数字大了');
    }else if(num1<num){
        alert('你输入的数字小了')
    }else{
        alert('恭喜你,你就是幸运之星')
        break;
    }

 

  • 日期对象的使用:是一个构造函数,必须使用new来调用创建我们的日期对象
 //1.使用Date,如果没有参数 返回当前系统的当前时间
     var date=new Date();
     console.log(date);
     var date1=new Date('2021-10-28');
     console.log(date1);
     var date2=new Date('2020-10-1 8:8:8');
     console.log(date2);

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

    //时分秒
    var date=new Date();
    console.log(date.getHours());//时
    console.log(date.getMinutes());//分
    console.log(date.getSeconds());//秒
    //封装一个函数返回当前的时分秒
    function getTime(){
        var time=new Date();
        var h=time.getHours();
        h<10? '0'+h:h;
        var m=time.getMinutes();
        m<10? '0'+m:m;
        var s=time.getSeconds();
        s=s<10? '0'+s:s;
        return '现在是'+h+'时'+m+'分'+s+'秒';
    }
    console.log(getTime());

Date总的毫秒数(时间戳):距离1970年1月1号过了多少毫秒数;四种写法


    //1.通过valueOf getTime()
    var date =new Date();
    console.log(date.valueOf());
    console.log(date.getTime());
    //2.简单常用的写法
    var date1=+new Date();
    console.log(date1);
    //H5新增的写法
    console.log(Date.now());

倒计时案例:

    //转换公式
    //d=parseInt(总秒数/60/60/24);  计算天数
    //h=parseInt(总秒数/60/60%24); 计算小时
    //m=parseInt(总秒数/60%60); 计算分钟
    //s=parseInt(总秒数%60); 计算当前秒数
    function conutDown(time){
        var nowtime=+new Date();
        var inputtime=+new Date(time);
        var times=(inputtime-nowtime)/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+'秒';
        
    }
    console.log(conutDown('2021-5-28 22:00:00'));
    var date=new Date();
    console.log(date);

 

  • 数组对象
    //复习创建数组的两种方式
    //1.利用数组字面量
    var arr=[1,2,3];
    console.log(arr[0]);
    //利用new Array()
    //var arr1=new Array();//创建一个空的数组
    //var arr1=new Array(2);创建一个长度为2的数组 里面有两个空的数组元素
    var arr1=new Array(2,3);//等价于[2,3] 这样写表示里面有两个数组元素 是2和3
    console.log(arr1);


    //翻转数组案例
    function reverse(arr){
        var arr1=[];
        if(arr instanceof Array){
            for(var i=arr.length-1;i>=0;i--){
            arr1[arr1.length]=arr[i];
        }
        return arr1;
        }else{
            return '你输入的不是数组格式';
        }
    }
    console.log(reverse([1,2,3,4]));
    console.log(reverse(1,2,3));
    //检测是否为数组格式 方式1:instanceof运算符
    var arr=[];
    var obj={};
    console.log(arr instanceof Array);//true
    console.log(obj instanceof Array);//false
    //方式二:Array.isArray(参数)
    console.log(Array.isArray(arr));//true
    console.log(Array.isArray(obj));//false

添加或者删除数组元素方法:

1.push():push可以直接给数组后面追加新的元素/push完毕之后返回的结果时新数组的长度/原数组也会发生变化

2.unshift():unshift可以直接给数组前面追加新的元素/unshift完毕之后返回的结果时新数组的长度/原数组也会发生变化

  //1.push() 在数组的末尾 添加加一个或者多个数组的元素
    var arr=[1,2,3];
    // arr.push(4,'绘梨衣');
    console.log(arr.push(4,'绘梨衣'));
    console.log(arr);

   //unshift方法
    var arr=[1,2,3];
    console.log(arr.unshift(5,'夏目'));
    console.log(arr);

3.pop():可以删除数组的最后一个元素 记住一次只能删除一个元素/pop()没有参数/pop完毕之后,返回的结果是 删除的那个元素/原数组也会发生变化

4.shift():可以删除数组的第一个元素,一次只能删除一个元素/shift没有参数/shift完毕之后,返回的结果是删除的那个元素/原数组会发生变化

console.log(arr.pop());
    console.log(arr);
    console.log(arr.shift());
    console.log(arr);

筛选数组案例:

 var arr=[1520,1200,2000,2100,1800];
    var arr1=[];
    for(var i=0;i<arr.length;i++){
        if(arr[i]<2000){
            // arr1[arr1.length]=arr[i];
            arr1.push(arr[i])
        }
    }
    console.log(arr1);

数组排序:

    //1.翻转数组
    var arr=[1,2,5];
    arr.reverse();
    console.log(arr);
    //2.数组排序(冒泡排序)
    var arr1=[4,13,67,345,111,44];
    arr1.sort(function(a,b){
        return a-b;//升序的顺序排序
        // return b-a;//降序的顺序排序
    });
    console.log(arr1);

数组索引方法:

方法名说明返回值
indexOf()在数组中查找给定元素的第一个索引如果存在返回索引号,如果不存在,则返回-1
lastIndexOf()在数组的最后一个索引

如果存在则返回索引号 如果不存在,则返回-1

数组去重案例:

   //数组去重案例
   function unique(arr){
    var arr1=[];
    for(var i=0;i<arr.length;i++){
        if(arr1.indexOf(arr[i])==-1){
            arr1.push(arr[i]);
        }
    }
    return arr1;
   }
   var demo=unique(['c','a','z','a','x','a','x','c','b']);
    console.log(demo);

数组转换为字符串:

1.toString():把数组转换成字符串,逗号分隔每一项 、返回一个字符串

2.join(''分隔符):方法用于把数组中所有元素转换为一个字符串,返回一个字符串

    //数组转换为字符串
    //1.toString()将我们的数组转换为字符串
    var arr=[1,2,3];
    console.log(arr.toString());
    //2.join(分隔符)
    var arr1=['路明非','楚雨航','诺诺'];
    console.log(arr1.join('&'));

 

PS:2021.5.28天气有点热,wifi断了一天多了,卡信号也不好,只能跑天台来开热点写了

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值