JavaScriptのpadStart()メソッドとpadEnd()メソッドの詳細な説明

青灯夜游
リリース: 2020-12-09 18:01:36
オリジナル
4872 人が閲覧しました

JavaScriptのpadStart()メソッドとpadEnd()メソッドの詳細な説明

ES2017 では、文字列補完長の機能が導入されました。文字列の長さが足りない場合は、先頭または末尾で完成します。 padStart() は先頭補完 に使用され、padEnd() は末尾補完に使用されます。

const string = 'hi';

string.padStart(3, 'c'); // "chi"

string.padEnd(4, 'l'); // "hill"
ログイン後にコピー

構文

string.padStart(, )

string.padEnd(, )
ログイン後にコピー

パラメータについて

padEndpadStart は同じパラメータを受け入れます。

1. maxLength

最終文字列の長さ。

const result = string.padStart(5);

result.length; // 5
ログイン後にコピー

これを見たとき、私も学ぶのに時間がかかりました。 maxLength は文字列パラメータが繰り返し入力された回数だとずっと思っていました。したがって、 このパラメータは 現在の文字列を埋める必要がある目標の長さであり、埋め込み文字列が繰り返される回数ではないことを 強調したいと思います。この値が現在の文字列の長さより小さい場合は、現在の文字列自体が返されます。

もちろん、読者の皆さんは私よりもはるかに賢いと信じているので、このような混乱はないと思います??

2.padString

PadString はパディング文字列を意味します。文字列が長すぎて、パディングされた文字列の長さが目標の長さを超える場合、左端の部分のみが保持され、他の部分は切り捨てられます。このパラメータのデフォルト値はスペースです " "(U 0020.

'hi'.padStart(5);

// 等价于
'hi'.padStart(5, ' ');
ログイン後にコピー

空の文字列を渡すと、何も入力されません。

const result = 'hi'.padStart(5, '');

result; // "hi"
result.length; // 2
ログイン後にコピー

How他のデータ型を処理するための

2 番目のパラメータ

padString では、string を受け入れます。他のデータ型をそれに渡そうとすると、 toString メソッドを使用して文字列への変換を強制します。さまざまな値の型で toString を使用すると何が起こるかを見てみましょう。

// Number
(100).toString(); // '100'

// Boolean
true.toString();   // 'true'
false.toString();  // 'false'

// Array
['A'].toString(); // 'A'
[''].toString();  // ''

// Object
({}).toString();         // '[object Object]'
({hi: 'hi'}).toString(); // '[object Object]'
ログイン後にコピー

この知識をもとに、これらの他の値タイプは

padStart に設定されます (padEnd も同じ動作になります)。

これは興味深い例です。unknown を強制的に文字列に変換すると、

TypeError

:
'SAM'.padStart(8, 100);    // '10010SAM'

'SAM'.padStart(8, true);   // 'truetSAM'
'SAM'.padStart(8, false);  // 'falseSAM'

'SAM'.padStart(5, ['']);   // 'SAM'
'SAM'.padStart(5, ['hi']); // 'hiSAM'

'SAM'.padStart(18, {});         // '[object Object]SAM'
'SAM'.padStart(18, {hi: 'hi'}); // '[object Object]SAM'
ログイン後にコピー
## が発生します。 #しかし、
unknown

を 2 番目のパラメータとして

padStart に渡すと、次の結果が得られます:

undefined.toString(); // TypeError: Cannot read property 'toString' of undefined
ログイン後にコピー
つまり、## は上記 #padString のパラメータ

toString

を使用して強制的に文字列に変換されます。ここでもまた間違っているように感じます??。まず仕様を見てみましょう: ECMAScript 仕様: Ifパディングされた文字列は

未定義

です。パディングされた文字列はスペース (0x0020) として規定されます。わかりました、修正しましょう。未定義 を除き、それ以外の場合は他のすべてのデータを修正します渡された型は、

toString
.padString が maxLength を超えた場合はどうなりますか?What if
maxLength

値が以下の場合、または現在の文字列の長さに等しい場合は、現在の文字列自体が返されます。

'SAM'.padStart(10, undefined);
// '       SAM'
ログイン後にコピー
maxLength

padString

の長さより小さい場合、

'hi'.padEnd(2, 'SAM');
// 'hi'
ログイン後にコピー
padStart/padEnd vs PadLeft/padRight

trim メソッドのエイリアスは、## です。 #trimLefttrimStart

のエイリアスです。trimRighttrimStart

  • # のエイリアスです。 ## ただし、文字列パディングメソッドの場合は、エイリアスはありません。したがって、padLeftpadRight は存在しないため、使用しないでください。これは、コード ベースの一貫性を確保するために、
  • trim
  • エイリアスを使用しないことをお勧めする理由でもあります??実用的な使用法padStart を使用する文字列を右揃えにします
  • 'hi'.padEnd(7, 'SAMANTHA');
    // 'hiSAMAN'
    ログイン後にコピー
得られた結果

console.log('JavaScript'.padStart(15));
console.log('HTML'.padStart(15));
console.log('CSS'.padStart(15));
console.log('Vue'.padStart(15));
ログイン後にコピー
デジタルコーディング
     JavaScript
           HTML
            CSS
            Vue
ログイン後にコピー
ブラウザサポートpadStartおよび

PadEnd

は同時に導入されるため、同様のブラウザ サポートを共有しますが、IE は使用できますか??

元のアドレス: https://dmitripavlutin.com/replace-all -string-occurrences -javascript/

著者: Dmitri Pavlutin

翻訳アドレス: https://segmentfault.com/a/1190000023721944

プログラミングの詳細については、-関連知識については、プログラミング入門をご覧ください。 !

以上がJavaScriptのpadStart()メソッドとpadEnd()メソッドの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!