js重装Math.对象 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>Document</title>
</head>
<body>
    

    <script>
        // 定义一个字符串,针对字符串去重
        // 封装成函数
        // var str1 = 'fjasklfhiasonvsadkfjaskl';

        function fn1(n){
            var nstr = "";

            for(var i=0;i<n.length;i++){
                // console.log(n[i]);  // 
                if(nstr.indexOf(n[i]) === -1){
                    nstr += n[i];
                }
            }
            return nstr;
        }

        var ns1 = fn1('fjasklfhiasonvsadkfjaskl');
        console.log(ns1);  // 'fjasklhionvd'

        var ns2 = fn1('aabbccddeefffgg');
        console.log(ns2);  // 'abcdefg'

        console.log('-----------------华丽的分割线--------------');

        // 定义一个字符串,统计字符串中每个字符出现的次数
            // 统计的次数 建议用 对象收集
            // {f:10,j:5,a:3}
        // 封装成函数
        // var str2 = 'fjasklfhiasonvsadkfjaskl';

        function fn2(n){
            var o = {};
            // 查看访问一个对象的成员,
                // 如果对象有这个成员,就返回 这个key的值
                // 如果对象没有这个成员,就返回 undefined
            // console.log(o.f);

            for(var i=0;i<n.length;i++){  
                // console.log(n[i]);  // f j a s k l f h i  a

                // 获取到 对象的键,判断对象的这个键的值是什么
                // 如果是 对象的键的值 转换成 布尔值是 true 说明 对象中有这个键,给他的值+1
                // 如果是 对象的键的值 转换成 布尔值是 false 说明 对象中没有有这个键,给他 添加这个键 赋值为 1
                if(o[n[i]]){
                    o[n[i]]++;  // o[n[i]] = o[n[i]]+1;
                }else{
                    o[n[i]] = 1;
                }
            }

            // console.log(o)
            return o;
        }

        var oc1 = fn2('fjasklfhiasonvsadkfjaskl')
        console.log(oc1);

        var oc2 = fn2('abbccaddebcd')
        console.log(oc2);



        function fn3(n){
            var o = {};
            for(var i=0;i<n.length;i++){
                // console.log(n[i]);  // 

                // 外层循环 执行那个值 就给 对象 添加一个 这个值为key
                o[n[i]] = 0;

                for(var j=0;j<n.length;j++){
                    // console.log(n[j]);  // 
                    // 只要 外层循环的值 与 内层循环的值 相等 说明 出现 一次
                    if(n[i] === n[j]){
                        o[n[i]]++;
                    }
                }
            }

            return o;
        }

        var oc3 = fn3('fjasklfhiasonvsadkfjaskl')
        console.log(oc3);


        console.log('-----------------华丽的分割线--------------');

        // 定义一个字符串,针对字符串去重,并且统计去重前字符串中每个字符出现的次数
        // 封装成函数
            // 返回 一个数组,
                // 数组的第0项是去重后的字符串
                // 数组的第1项是统计字符次数的对象
                // [
                //     'fjas....',
                //     {
                //         f:5,
                //         j:4
                //     }
                // ]
        // var str3 = 'fjasklfhiasonvsadkfjaskl';

        function fn4(n){
            var na = [];

            // 去重
            var nstr = "";
            for(var i=0;i<n.length;i++){
                if(nstr.indexOf(n[i]) === -1){
                    nstr += n[i];
                }
            }
            na[0] = nstr;

            // 统计次数
            var o = {};
            for(var i=0;i<n.length;i++){
                if(o[n[i]]){
                    o[n[i]]++;
                }else{
                    o[n[i]] = 1;
                }
            }
            na[1] = o;

            return na;

        }

        var arr1 = fn4('fjasklfhiasonvsadkfjaskl');
        console.log(arr1);




        // 和谐不文明词汇
            // 定义一个数组,将 不文明词汇 存在 数组中  自行补充
            // var arr = ['尼玛','我干','草','瞎']
            // 给定一个字符串,是一句话
            // var str = '是不是瞎,尼玛的,信不信我干你,草,真是服了草';
                //   '是不是***,***的,信不信***你,***,真是服了';
            // 将这句话中的不文明词汇和谐掉,替换成 "***"   会用到字符的 替换字符 的方法
        // 最终封装成一个方法,传入 字符串,返回被和谐的结果(字符串)
        
        function hexie(str){
            // console.log(str);
            var arr = ['尼玛','我干','草','瞎'];

            for(var i=0;i<arr.length;i++){
                while(true){
                    if(str.indexOf(arr[i]) === -1){
                        break;
                    }else{
                        str = str.replace(arr[i],"888");
                    }
                }
            }

            // console.log(str);
            return str;
        }

        var nstr = hexie('是不是瞎,尼玛的,信不信我干你,草,草,真是服了草,尼玛,真实草了,我干')
        console.log(nstr);  // 



        // 思考
        var arr1 = [3<2<1,1>2>3];
        console.log(arr1);  // 
    </script>
</body>
</html>
<!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>Document</title>
</head>
<body>
    

    <script>

        // 思考
        var arr1 = [3<2<1,1>2>3];
                 // [flae<1,flase>3]
                 // [0<1,0>3]
                 // [true,false] 
        console.log(arr1);  // [true,false]






    </script>
</body>
</html>
<!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>Document</title>
</head>
<body>
    

    <script>
        // Math对象 --- 数学对象
            // Math对象 属于 js的内置对象
            // 使用用来操作 数字的一个对象
            // 在 Math对象上 有一些 属性 和 方法 方便我们 操作数字


        // Math对象 的 一些 属性 和 方法
            // Math.ceil()          对数字进行向上取整
            var a = Math.ceil(34.4);
            console.log(a);  // 35


	        // Math.floor(num)  	对数字进行向下取整
            var b = Math.floor(34.4);
            console.log(b);  // 34


            // Math.round(num)      对数字进行四舍五入
            var c = Math.round(38.3);
            console.log(c);  // 38
            var d = Math.round(56.7);
            console.log(d);  // 57


            // Math.PI      圆周率  π   3.1415926.......
            console.log(Math.PI);  // 3.141592653589793


            // Math.min()       返回参数中的 最小值 
            var e = Math.min(23,98,45);
            console.log(e);  // 23
            var f = Math.min(23,98,45,5,21,17);
            console.log(f);  // 5


            // Math.max()       返回参数中的 最大值
            var g = Math.max(23,98,45);
            console.log(g);  // 98
            var h = Math.max(23,98,45,5,21,17);
            console.log(h);  // 98


            // Math.sqrt()      返回 参数数字的 平方根 --- 开根号
            var i = Math.sqrt(9);
            console.log(i);  // 3
            var j = Math.sqrt(11);
            console.log(j);  // 3.3166247903554
            var k = Math.sqrt(16);
            console.log(k);  // 4
            var l = Math.sqrt(15);
            console.log(l);  // 3.872983346207417


            // Math.pow(num,n)      计算数字num的n次方 --- 幂次方
            var m = Math.pow(4,5);
            console.log(m);  // 1024


            // Math.abs(num)  	    返回绝对值
            var n = Math.abs(21);
            console.log(n);  // 21
            var o = Math.abs(-14);
            console.log(o);  // 14


            // Math.random()        返回介于0~1之间的一个随机数
            var num = Math.random();
            console.log(num);
            // 需要针对这个方法进行二次定义开发 可以帮助实现 指定区间的随机数
            // 公式:Math.floor(Math.random() * (max-min+1) + min)
            var rnum = Math.floor(Math.random() * (20-5+1) + 5);
            console.log(rnum);

            // console.log(Math.random())
            // console.log(0.99999999999 * 16)
        

    </script>
</body>
</html>
<!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>Document</title>
</head>
<body>
    

    <script>
        // Date对象    日期对象--时间对象
            // 是 js 原生的 时间库
            // 以1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天

        // 获取时间
        // 时间对象的创建  --- js内部了一个构造函数 Date,通过在函数调用给前 加上new关键字创建
            // 如果 不传参 的到的就是 当前时间
            var d1 = new Date();
            console.log(d1);

            // 可以通过 传参得到  过去时间 或 未来时间 ---- 指定时间
            var d2 = new Date('2018 6 22 13:14:30');
            console.log(d2);

            var d3 = new Date('2023-5-20 13:14:00');
            console.log(d3);

                // 也可以通过多个参数指定时间,但是这种情况下月份会有问题
                // 0是一月,1是二月,.....,11是十二月
                // 仅限于多个参数 获取 指定时间时 是这样的
            var d4 = new Date(2023,5,20,13,14,0);
            console.log(d4);


        console.log(typeof d2);  // 'object'

        // 引用数据类型(复杂数据类型、对象数据类型)
            // function
            // Array
            // Object
            // Date
    </script>
</body>
</html>
<!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>Document</title>
</head>
<body>
    

    <script>
        // 当前时间
        var d1 = new Date();
        console.log(d1);
        // 指定时间
        var d2 = new Date('2018-5-20 13:14:08');
        console.log(d2);

        // getFullYear()    获取 日期对象的 年份 --- 返回 4位数字
        var year1 = d1.getFullYear();
        console.log(year1);  // 2022   当前的年份
        var year2 = d2.getFullYear();
        console.log(year2);  // 2018

        // getMonth()       获取 日期对象的 月份 --- 返回 0-11的数字
            // 0是一月,1是二月,.....,11是十二月
            // 使用时 需要 +1 使用
        var month1 = d1.getMonth()+1;
        console.log(month1);  // 11     当前的月份
        var month2 = d2.getMonth()+1;
        console.log(month2);  // 5

        // getDate()        获取 日期对象的 日期 --- 返回 1-31的数字
        var day1 = d1.getDate();
        console.log(day1);  // 18     当前的日期
        var day2 = d2.getDate();
        console.log(day2);  // 20

        // getHours         获取 日期对象的 小时 --- 返回 0-23的数字
        var hours1 = d1.getHours();
        console.log(hours1);  // 17     当前的小时
        var hours2 = d2.getHours();
        console.log(hours2);  // 13

        // getMinutes()     获取 日期对象的 分钟 --- 返回 0-59的数字
        var minutes1 = d1.getMinutes()
        console.log(minutes1);  // 19     当前的分钟
        var minutes2 = d2.getMinutes()
        console.log(minutes2);  // 14

        // getSeconds()     获取 日期对象的 秒 --- 返回 0-59的数字
        var seconds1 = d1.getSeconds()
        console.log(seconds1);  // 51     当前的秒
        var seconds2 = d2.getSeconds()
        console.log(seconds2);  // 8

        // getDay()         获取 日期对象的 星期 --- 返回 0-6的数字
            // 0是星期日,1是星期一,2是星期二,......,6是星期六
        var week1 = d1.getDay();
        console.log(week1);  // 5       当前的星期
        var week2 = d2.getDay();
        console.log(week2);  // 0

        // getTime()        获取时间戳:获取 日期对象时间 距离1970年1月1日0时0分0秒的 毫秒数(1s === 1000ms)
            // 实现 倒计时 或 正计时都需要 使用到 时间戳
        var time1 = d1.getTime();
        console.log(time1);  // 1668764131679   当前的时间戳
        var time2 = d2.getTime();
        console.log(time2);  //

        document.write('今天是'+year1+'年'+month1+'月'+day1+'日 '+doubleNum(hours1)+':'+doubleNum(minutes1)+':'+doubleNum(seconds1)+' 星期'+weekN(week1));
    
        
        // 封装 数字小于10前面补0 的方法
        function doubleNum(n){
            return n<10?'0'+n:n;
        }
    
        
        function weekN(n){
            var w;

            switch(n){
                case 0:
                    w = '日';
                    break;
                case 1:
                    w = '一';
                    break;
                case 2:
                    w = '二';
                    break;
                case 3:
                    w = '三';
                    break;
                case 4:
                    w = '四';
                    break;
                case 5:
                    w = '五';
                    break;
                case 6:
                    w = '六';
                    break;
            }

            return w;
        }
    
    </script>
</body>
</html>
<!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>Document</title>
</head>
<body>
    
    <script src="./../../../public.js"></script>
    <script>

        // // 当前时间
        // var d1 = new Date();

        // // 指定的 将来时间
        // var d2 = new Date('2023-3-11 18:00:00');

        // // 计算时间差  用 后面的时间 - 前面的时间 的时间戳 单位是毫秒, 转换成 秒单位
        // var timer = (d2.getTime() - d1.getTime())/1000;
        // console.log(timer);

        // // 计算 时间差值 中 包含 多少 天 时 分 秒
        // // 天     60*60*24 === 86400 秒
        // var day = parseInt(timer/86400);
        // console.log(day);
        // // 时     减去整天时长 剩余 不够整天的时间计算  零多少小时
        // //        60*60 === 3600 秒
        // var hour = parseInt(timer%86400/3600);
        // console.log(hour);
        // // 分     60秒
        // var mint = parseInt(timer%3600/60);
        // console.log(mint);
        // // 秒     
        // var sec = parseInt(timer%60);
        // console.log(sec);

        // document.write('距离一个让人兴奋的时间还有 '+day+'天 '+doubleNum(hour)+':'+doubleNum(mint)+':'+doubleNum(sec));


        // 间隔定时器 --- 指定间隔多长时间(毫秒) 执行一次 函数中的代码
            // 第一个参数 是函数,需要执行的代码 写在函数中
            // 第二个参数 是时间戳(毫秒数),间隔的时间
        setInterval(function(){
            // 当前时间
            var d1 = new Date();

            // 指定的 将来时间
            var d2 = new Date('2023-3-11 18:00:00');

            // 计算时间差  用 后面的时间 - 前面的时间 的时间戳 单位是毫秒, 转换成 秒单位
            var timer = (d2.getTime() - d1.getTime())/1000;
            console.log(timer);

            // 计算 时间差值 中 包含 多少 天 时 分 秒
            // 天     60*60*24 === 86400 秒
            var day = parseInt(timer/86400);
            console.log(day);
            // 时     减去整天时长 剩余 不够整天的时间计算  零多少小时
            //        60*60 === 3600 秒
            var hour = parseInt(timer%86400/3600);
            console.log(hour);
            // 分     60秒
            var mint = parseInt(timer%3600/60);
            console.log(mint);
            // 秒     
            var sec = parseInt(timer%60);
            console.log(sec);

            // document.write('距离一个让人兴奋的时间还有 '+day+'天 '+doubleNum(hour)+':'+doubleNum(mint)+':'+doubleNum(sec));
            
            // document.body   获取到body标签
            // innerHTML    设置标签的内容
            document.body.innerHTML = '距离一个让人兴奋的时间还有 '+day+'天 '+doubleNum(hour)+':'+doubleNum(mint)+':'+doubleNum(sec);
        },1000);




        // setInterval(function(){
            // 执行的代码
        // },1000);
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值