成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript中的String Pad

開發 前端
填充非常容易!只需輸入您想要的字符串和長度即可。它將填充字符串,直到達到長度為止。使用padStart在開始處應用它,使用padEnd在結尾處應用它 。

填充非常容易!只需輸入您想要的字符串和長度即可。它將填充字符串,直到達到長度為止。使用padStart在開始處應用它,使用padEnd在結尾處應用它 。

  1. const string = 'hi'
  2. string.padStart(3, 'c'); // "chi" 
  3. string.padEnd(4, 'l'); // "hill" 

語法

這是如何使用該方法的語法。

  1. string.padStart(<maxLength><padString>
  2. string.padEnd(<maxLength><padString>

了解參數

padEnd 和 padStart 接受相同的參數。

(1) maxLength

這是結果字符串的最大長度。

  1. const result = string.padStart(5); 
  2. result.length; // 5 

當我學習這個時,這花了我一段時間,我一直認為這是重復填充字符串參數的次數。所以只想強調一下,這個參數是設置結果字符串的MAX或目標長度。這不是填充字符串重復的次數。但是你比我聰明,所以我確定你沒有這種困惑

(2) padString

這是你想用來填充字符串的字符串。這是可選的。如果你未指定任何內容,則默認值為空白。

  1. 'hi'.padStart(5); 
  2. // 等同于 
  3. 'hi'.padStart(5, ' '); 

而且,如果你嘗試傳遞一個空字符串,則不會發生填充。

  1. const result = 'hi'.padStart(5, 'hi'); 
  2. result; // '' 
  3. result.length; // 2 

它如何處理其他數據類型

對于第二個參數 padString,它接受一個字符串。如果你嘗試傳遞任何其他數據類型,它將會使用 toString 將其強制為字符串,并將使用該字符串。因此,讓我們看看在不同的值類型上使用 toString 時會發生什么。

  1. // NUMBER 
  2. (100).toString(); // '100' 
  3. // BOOLEAN 
  4. true.toString();   // 'true' 
  5. false.toString();  // 'false' 
  6. // ARRAY 
  7. ['A'].toString(); // 'A' 
  8. [''].toString();  // '' 
  9. // OBJECT 
  10. ({}).toString();         // '[object Object]' 
  11. ({hi: 'hi'}).toString(); // '[object Object]' 

現在知道了,讓我們看看是否將這些其他值類型傳遞給padStart(padEnd將具有相同的行為)。

  1. 'SAM'.padStart(8, 100);    // '10010SAM' 
  2. 'SAM'.padStart(8, true);   // 'truetSAM' 
  3. 'SAM'.padStart(8, false);  // 'falseSAM' 
  4. 'SAM'.padStart(5, ['']);   // 'SAM' 
  5. 'SAM'.padStart(5, ['hi']); // 'hiSAM' 
  6. 'SAM'.padStart(18, {});         // '[object Object]SAM' 
  7. 'SAM'.padStart(18, {hi: 'hi'}); // '[object Object]SAM' 

處理undefined

但這里有一個有趣的問題。當你試圖強制轉換 undefined 的時候,你會得到一個 TypeError。

  1. undefined.toString(); // TypeError: Cannot read property 'toString' of undefined 

但是,當你傳入 undefined 作為第二個參數時,你會得到以下結果:

  1. 'SAM'.padStart(10, undefined); 
  2. // '       SAM' 

所以當我說 padString 參數會用 toString 來強制轉換的時候,我是不是騙了你好吧,我們來深入了解一下規范。

好吧,讓我更新我的發言!除非是undefined,否則你傳遞的所有其他數據類型都將使用 toString 強制轉換 。

如果padString超過maxLength怎么辦?

當第一個參數 maxLength 不允許你的第一個參數padString有足夠的長度時,它將被直接忽略。

  1. 'hi'.padEnd(2, 'SAM'); 
  2. // 'hi' 

或者,會將其切斷。請記住,maxLength 表示你的 padString 可以占用的最大長度減去該字符串所占用的長度。

  1. 'hi'.padEnd(7, 'SAMANTHA'); 
  2. // 'hiSAMAN' 

而且,如果你的第一個參數 maxLength 小于你的字符串,它將僅返回該字符串。

  1. 'hello'.padEnd(1, 'SAM'); 
  2. // 'hello' 

在之前的代碼筆記中,我介紹了String Trim,其中提到了trim方法具有別名。

  • trimLeft是trimStart的別名
  • trimRight是trimEnd的別名

但是對于字符串填充方法,沒有別名。所以不要使用 padLeft 和 padRight,它們不存在。這也是為什么鼓勵你不要使用trim別名的原因,這樣在你的代碼庫中有更好的一致性。

用例

(1) 使用padEnd進行表格格式設置

字符串填充方法的一個很好的用例是格式化。我介紹了如何以表格格式顯示字符串。

(2) 用padStart右對齊字符串

你可以使用 padStart 格式化右對齊。

  1. console.log('JavaScript'.padStart(15)); 
  2. console.log('HTML'.padStart(15)); 
  3. console.log('CSS'.padStart(15)); 
  4. console.log('Vue'.padStart(15)); 

這將輸出:

  1. JavaScript 
  2.            HTML            CSS            Vue 

(3) 收據格式

有了正確的對齊格式知識,你就可以像這樣打印收據:

  1. const purchase = [ 
  2.   ['Masks', '9.99'], 
  3.   ['Shirt', '20.00'], 
  4.   ['Jacket', '200.00'], 
  5.   ['Gloves', '10.00'], 
  6. ];purchase.forEach(([item, price]) => { 
  7.   return console.log(item + price.padStart(20 - item.length)); 
  8. }); 

這將輸出:

  1. Masks           9.99 
  2. Shirt          20.00 
  3. Jacket        200.00 
  4. Gloves         10.00 

(4) 掩蓋數字

我們也可以使用它來顯示被屏蔽的數字。

  1. const bankNumber = '2222 2222 2222 2222'
  2. const last4Digits = bankNumber.slice(-4); 
  3. last4Digits.(bankNumber.length, '*'); 
  4. // ***************2222 

瀏覽器支持

padStart和padEnd是同時推出的,所以它們共享類似的瀏覽器支持。除了IE之外,所有的瀏覽器都支持,但是我們真的很驚訝嗎?

Polyfill

對于IE或更舊的瀏覽器支持,請參閱此polyfill:

https://github.com/behnammodi/polyfill/blob/master/string.polyfill.js

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2020-09-03 10:13:49

JavaScript字符串pad

2010-08-23 09:56:58

撕裂Wintel

2014-01-03 09:13:39

JavaScriptthis

2013-05-08 10:36:07

JavaScriptJS詳解JavaScrip

2020-07-29 09:13:28

JavaScript開發技術

2017-03-20 14:45:42

JavaScript詳解

2017-05-23 15:47:04

JavaScriptthis解析

2021-10-21 18:47:37

JavaScript面向對象

2015-07-23 11:59:27

JavascriptPromise

2022-12-29 08:54:53

依賴注入JavaScript

2020-06-18 09:16:20

JavaScript緩存API

2011-06-01 14:01:45

JavaString

2012-03-09 10:02:29

Java

2012-04-05 13:37:10

JavaString

2020-07-09 08:01:48

JavaScriptES模塊

2013-06-20 09:59:12

Javascriptvar

2017-07-26 17:10:24

前端JavascriptThis

2017-08-28 15:21:29

異步處理回調函數異步編程

2021-04-01 17:04:34

Javascript語法數組

2021-04-26 07:51:00

JavaScript方法函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一级在线观看 | 嫩草视频网 | 国产成人精品一区二 | 99re视频在线 | 91久久| 91xxx在线观看 | 日韩久久综合 | 亚洲综合成人网 | 黄色香蕉视频在线观看 | 精品久久国产 | 日本黄色片免费在线观看 | 91电影| 特级毛片| 一级黄色日本片 | 人人做人人澡人人爽欧美 | 亚洲一区电影 | 久久69精品久久久久久国产越南 | 精品丝袜在线 | 亚洲国产高清高潮精品美女 | 亚洲精品一区中文字幕乱码 | 一级毛片网 | 男人天堂网址 | 久久久看 | 伊人久久大香线 | 9porny九色视频自拍 | 午夜影院在线观看 | 日本高清aⅴ毛片免费 | av中文在线观看 | 久久国产区| 久久69精品久久久久久久电影好 | 艹逼网| 一区二区三区欧美在线观看 | 国产日韩欧美在线播放 | 欧美激情在线精品一区二区三区 | 91精品导航 | 91在线精品视频 | av中文字幕在线播放 | 一级做a爰片久久毛片 | 日日日日操 | 久久久精品一区二区 | 欧美一区二区小视频 |