padstart兼容_显示列出polyfill

padstart兼容_显示列出polyfill?原文链接:欢迎star.今天在看ES7新增的部分Api的时候刚好看到padStart的这个方法,好像还挺实用的,而且也想在正式开始工作之前先找找写代码的感觉,于是顺手(其实还是花了不少时间的)就实现了这个polyfill。相关的API用法在MDN上有说明。链接下面是具体实现if(!String.p…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

?

原文 链接:欢迎 star.

今天在看 ES7 新增的部分 Api 的时候刚好看到 padStart 的这个方法,好像还挺实用的,而且也想在正式开始工作之前先找找写代码的感觉,于是顺手(其实还是花了不少时间的)就实现了这个 polyfill。

相关的 API 用法在 MDN 上有说明。 链接 下面是具体实现

if(!String.prototype.padStart)
    String.prototype.padStart = 
       // 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解
        function (maxLength, fillString=' ') {
            if(Object.prototype.toString.call(fillString) !== "[object String]") throw new TypeError('fillString must be String')
            let str = this
            // 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉
            if(str.length >= maxLength) return String(str)

            let fillLength = maxLength - str.length, 
                 times = Math.ceil(fillLength / fillString.length)
           
           // 这个算法叫啥?
           // SICP 的中文版第 30页 有用到同种算法计算乘幂计算
            while(times >>= 1) { 
                fillString += fillString
                    if(times === 1){
                       fillString += fillString
                    }     
            }
            return fillString.slice(0, fillLength) + str  
        }
// padStart  对于我来说最常用的地方就在于时间或者数字格式补全了

'5'.padStart(2, '0') // '05'
'15'.padStart(2, '0') // '15'

ps:
写完之后突然发现这个好像就是之前 npm 的 left-pad 删库事件;隐约记得好多人都重写过这个库。anyway, 练手的目的算是达到了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197797.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SpringDataJpa

    SpringDataJpaSpringDataJpa

    2022年4月22日
    34
  • 喵友黎言卓:一个人的创业战争「建议收藏」

    喵友黎言卓:一个人的创业战争「建议收藏」大二选择辍学创业,没有团队、没有资金,个人生活极其窘困。这个站长还能坚持多久?24岁的创业者黎言卓,想做一款既带有社交与分享功能,但又与SNS不同;既可以写博客,却又与传统博客、轻博客、微博不同的产品。描述这款产品似乎有些拗口,总之,这个身处广州、在校期间被同学为电脑“天才”的年青人,2010年一个人编程、创办了一个叫“喵友”的博客社区。目前它已经有大约9000名用户,且每月以千人的数量在增长…

    2022年8月12日
    4
  • 盘点python工具包并优化pip下载加速

    盘点python工具包并优化pip下载加速1、优化pip下载加速2、vscode使用安装环境python3、python相关工具包与方法3.1、Bilibili.com(B站)数据下载工具包开源地址:https://github.com/wolfbolin/BiliUtil安装命令:pipinstallBi

    2022年7月14日
    24
  • 无名的ADRC的C语言实现

    无名的ADRC的C语言实现分为ADRC.h和ADRC.c#ifndef_ADRC_H_#define_ADRC_H_/*———————————————————————————————————————-/*本程序只供购买者学习使用,版权著作权属于无名科创团队,*无名科…

    2022年5月19日
    34
  • eclipse创建java项目无反应「建议收藏」

    eclipse创建java项目无反应「建议收藏」问题:系统升级到win10,重新安装eclipse,发现设置了原来的工作文件夹后,点击JavaProject和Project都没有反应环境配置:WIN10系统,64位。jdk15环境变量:Path 值:%JAVA_HOME%\bin%JAVA_HOME%值:C:\ProgramFiles\Java\jdk-15.0.2分析:WIN10系统,加载JAVA_HOME有时候会出问题。直接用路径就没问题。解决方案:1、打开在系统环境变量设置,改变环境变量:不设置%J

    2022年10月25日
    0
  • 使用maven打包jar_两个java文件打包成jar

    使用maven打包jar_两个java文件打包成jar目录打包方法方法一:使用maven-jar-plugin和maven-dependency-plugin方法二:使用maven-assembly-plugin(推荐)方法三:使用maven-shade-plugin方法四:使用onejar-maven-plugin方法五:使用spring-boot-maven-plugin方法六:使用tomcat7-maven-plugin参考打包方法方法一:使用maven-jar-plugin和maven-dependenc.

    2022年10月4日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号