填充非常简单!只需输入您想要的字符串和长度。它会填充字符串直到它达到长度。在开始时使用padStart应用它,在结束时使用padEnd应用它。conststring='hi';string.padStart(3,'c');//"chi"string.padEnd(4,'l');//"hill"语法这是如何使用该方法的语法。string.padStart(,)string.padEnd(,)理解参数padEnd和padStart接受相同的参数。(1)maxLength这是结果字符串的最大长度。constResult=string.padStart(5);result.length;//5这个我学的时候费了点功夫,一直以为是重复填充字符串参数的次数。所以只想强调一下,这个参数是设置结果字符串的MAX或者目标长度。这不是填充字符串重复的次数。但是你比我聪明,所以我相信你不会有这种困惑(2)padString这是你想要用来填充字符串的字符串。这是可选的。如果您未指定任何内容,则默认为空白。'hi'.padStart(5);//等同于'hi'.padStart(5,'');此外,如果您尝试传递一个空字符串,则不会发生填充。constresult='hi'.padStart(5,'hi');result;//''result.length;//2如何处理其他数据类型对于第二个参数padString,它接受一个字符串。如果您尝试传递任何其他数据类型,它将使用toString将其强制转换为字符串并使用它。那么让我们看看当我们对不同的值类型使用toString时会发生什么。//NUMBER(100).toString();//'100'//BOOLEANtrue.toString();//'true'false.toString();//'false'//ARRAY['A'].toString();//'A'[''].toString();//''//OBJECT({}).toString();//'[objectObject]'({hi:'hi'})。toString();//'[objectObject]'现在我们知道了,让我们看看是否将这些其他值类型传递给padStart(padEnd的行为相同)。'SAM'.padStart(8,100);//'10010SAM''SAM'.padStart(8,true);//'trueSAM''SAM'.padStart(8,false);//'falseSAM''SAM'.padStart(5,['']);//'SAM''SAM'.padStart(5,['hi']);//'hiSAM''SAM'.padStart(18,{});//'[objectObject]SAM''SAM'.padStart(18,{hi:'hi'});//'[objectObject]SAM'handlesundefined但这里有个有趣的问题。当您尝试转换undefined时,您会得到一个TypeError。undefined.toString();//TypeError:Cannotreadproperty'toString'ofundefined然而,当你传入undefined作为第二个参数时,你会得到如下结果:'SAM'.padStart(10,undefined);//'SAM'当我说padString参数将被toString强制时,我是不是在骗你好吧,让我们深入了解规范。好吧,让我更新我的声明!除非未定义,否则您传递的所有其他数据类型都将使用toString进行转换。如果padString超过maxLength怎么办?当第一个参数maxLength不允许你的第一个参数padString有足够的长度时,会直接忽略。'hi'.padEnd(2,'SAM');//'hi'或者,将其切断。请记住,maxLength表示padString可以采用的最大长度减去字符串采用的长度。'hi'.padEnd(7,'SAMANTHA');//'hiSAMAN'此外,如果您的第一个参数maxLength小于您的字符串,它只会返回该字符串。'hello'.padEnd(1,'SAM');//'hello'在之前的代码笔记中介绍了StringTrim,里面提到trim方法有一个别名。trimLeft是trimStart的别名trimRight是trimEnd的别名,但对于字符串填充方法,没有别名。所以不要使用padLeft和padRight,它们不存在。这也是为什么我们鼓励您不要使用trim别名,以便在您的代码库中获得更好的一致性。用例(1)使用padEnd进行表格格式化字符串填充方法的一个很好的用例是格式化。我介绍了如何以表格格式显示字符串。(2)使用padStart右对齐字符串您可以使用padStart来格式化右对齐字符串。console.log('JavaScript'.padStart(15));console.log('HTML'.padStart(15));console.log('CSS'.padStart(15));console.log('Vue'.垫开始(15));这将输出:JavaScriptHTMLCSSVue(3)收据格式正确了解对齐格式后,您可以像这样打印收据:constpurchase=[['Masks','9.99'],['Shirt','20.00'],['夹克','200.00'],['手套','10.00'],];purchase.forEach(([item,price])=>{returnconsole.log(item+price.padStart(20-item.length));});这将输出:Masks9.99Shirt20.00Jacket200.00Gloves10.00(4)Maskingnumbers我们也可以用它来显示被屏蔽的数字。constbankNumber='2222222222222222';constlast4Digits=bankNumber.slice(-4);last4Digits.(bankNumber.length,'*');//**************2222浏览器支持padStart和padEnd是同时引入的,因此它们具有相似的浏览器支持。除了IE,所有浏览器都支持它,但我们真的感到惊讶吗?Polyfill对于IE或更旧的浏览器支持,请参阅此polyfill:https://github.com/behnammodi/polyfill/blob/master/string.polyfill.js