es6自动补全语法padStart padEnd+顺便实现时间的动态更新

一、es6 自动补全语法介绍

1.padStart
用来在指定的字符串前面补全指定字符。
用法实例:

   let str = "world";
       str.padStart(11, "hello "); //hello world

第一个参数11,表示你指定的补全后字符的长度,第二个参数表示需要用来补全的字符串。hello world 包含空格一共11个字符。

那如果指定的位数小于11呢?

 let str = "world";
        //str.padStart(11, "hello "); //hello world
        str.padStart(8, "hello "); //helworld

咱们指定位数为8,可以看到输出的是helworld,会自动删除指定字符串中超出的部分。

如果指定的参数大于11呢?

 let str = "world";
        //str.padStart(11, "hello "); //hello world
        //str.padStart(8, "hello "); //helworld
        str.padStart(15, "hello "); //hello hellworld

我们指定字符串长度为15,可以看到会重复拼接指定的字符串,直至满足指定的长度。

如果没有指定拼接的字符串,默认在前面拼接空格

let str = "world";
        //str.padStart(11, "hello "); //hello world
        str.padStart(8); //   world  注意前面有三个空格

如果指定的长度比原长度还小呢?

let str = "world";
    str.padStart(2,"!"); //   world

那么则显示原来的字符串,不会发生任何改变。
2.padEnd
和padStart不同的是,padEnd是拼接指定的字符串到结尾,用法和padStart一样。

let str = "world";
    str.padEnd(8,"!"); //   world!!!

前面几种情况 padEnd也适用。

注意:
这个参数必须是字符串形式,否则会报错。

二、实现时间的动态更新

里面用到了补全的语法,因为通过Date获取的时分秒,如果是各位数的话,不会显示前面的0,我们希望它显示出来,就要用到补全。

直接上代码:
html部分:

 <div id="time"></div>

css部分:(随便搞了个居中)

 #time {
                width: 30px;
                height: 30px;
                margin: 18px auto;
            }

js部分:(重头戏)

/* es自动补全实例方法: 字符串的方法
         * padStart()  补全字符串的开头
         * padEnd()  补全字符串的结尾
         */
        //使用场景1 : 补全个位数时间前面的0
        //存放数据对象
        let data = {
            hours: "", //时
            minutes: "", //分
            seconds: "", //秒
        };
        function getDate() {
            let date = new Date();
            data.seconds = date.getSeconds().toString();
            data.minutes = date.getMinutes().toString();
            data.hours = date.getHours().toString();
        }

        // console.log(hours instanceof String); //string instanceof String 一直返回false,string不属于任何一个类
        // console.log(typeof hours); //看下是否转为String

        /*
         * 时间补全函数
         * method: complete
         * param: str (String)
         */
        function complete(str) {
        	//用来判断传入的参数是否是字符串
            if (typeof str === "string") {
                return str < 10 ? str.padStart(2, "0") : str; //只有个位数的需要补0
            } else {
                console.error("complete函数参数填写错误!");
            }
        }

        /*展示时间函数*/
        const showTime = function () {
        	//这里每次调用都要保证获取当前的时间
            getDate();
            let timeDiv = document.getElementById("time");
            let time =
                complete(data.hours) +
                ":" +
                complete(data.minutes) +
                ":" +
                complete(data.seconds);
            //console.log(time);
            timeDiv.innerHTML = time;
        };
        /*定时器:动态展示时间
        *至于为什么不设置成1000ms是因为考虑到网速等各种原因
        *为了不让显示的时间卡顿
        */
        let timeIntv = self.setInterval(showTime, 900);

效果图:(他会自动跳时间)
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

godlike-icy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值