JavaScriptで値を文字列に変換する5つの方法を理解する。


Airbnbのスタイルガイドに注目するなら、第一の方法は「String()」を使うことです。
これも私が使ったものです。一番明確なので、他の人に簡単にあなたのコードを従わせる意図です。
一番いいコードは必ずしも一番頭がいい方法ではなく、他人にコードを理解して伝えることができるコードです。

const value = 12345;
// Concat Empty String
value + '';
// Template Strings
`${value}`;
// JSON.stringify
JSON.stringify(value);
// toString()
value.toString();
// String()
String(value);
// RESULT
// '12345'
比較5つの方式
じゃ、違う値で5つの方法をテストしましょう。以下は私たちがテストする変数です。

const string = "hello";
const number = 123;
const boolean = true;
const array = [1, "2", 3];
const object = {one: 1 };
const symbolValue = Symbol('123');
const undefinedValue = undefined;
const nullValue = null;
空の文字列を結合

string + ''; // 'hello'
number + ''; // '123'
boolean + ''; // 'true'
array + ''; // '1,2,3'
object + ''; // '[object Object]'
undefinedValue + ''; // 'undefined'
nullValue + ''; // 'null'
// ⚠
symbolValue + ''; // TypeError
ここからSymbolの値であれば、TypeErrをスローします。さもなくば、すべてがよさそうです。
テンプレート文字列

`${string}`; // 'hello'
`${number}`; // '123'
`${boolean}`; // 'true'
`${array}`; // '1,2,3'
`${object}`; // '[object Object]'
`${undefinedValue}`; // 'undefined'
`${nullValue}`; // 'null'
// ⚠
`${symbolValue}`; // TypeError
テンプレート文字列を使った結果は、空の文字列を結合した結果とほぼ同じです。同様に、SymbolはTypeErrを投げるので、理想的な処理ではないかもしれません。
気になるなら、それはTypeError:TypeError:Canot convert a Symbol value to a stringです。
JSON.stringify()

// ⚠
JSON.stringify(string); // '"hello"'
JSON.stringify(number); // '123'
JSON.stringify(boolean); // 'true'
JSON.stringify(array); // '[1,"2",3]'
JSON.stringify(object); // '{"one":1}'
JSON.stringify(nullValue); // 'null'
JSON.stringify(symbolValue); // undefined
JSON.stringify(undefinedValue); // undefined
したがって、JSON.strigifyは通常使われません。値を文字列に変換します。そしてここは本当に強制的に発生していません。したがって、利用可能なすべてのツールを理解します。そして、どのような道具を使うかを決めることができます。具体的な状況によって使うのではありません。👍
ちょっと指摘したいのですが、注意していないかもしれません。実際のstring値で使用すると、引用符付き文字列に変更されます。
.toString()

string.toString(); // 'hello'
number.toString(); // '123'
boolean.toString(); // 'true'
array.toString(); // '1,2,3'
object.toString(); // '[object Object]'
symbolValue.toString(); // 'Symbol(123)'
// ⚠
undefinedValue.toString(); // TypeError
nullValue.toString(); // TypeError
だからPKとは、String()とString()で、一つの値を文字列に変換したいときです。それ以外はundefinedとnullのためにミスを投げます。他の表現は全部いいです。ですから、この点に注意しなければなりません。
String()

String(string); // 'hello'
String(number); // '123'
String(boolean); // 'true'
String(array); // '1,2,3'
String(object); // '[object Object]'
String(symbolValue); // 'Symbol(123)'
String(undefinedValue); // 'undefined'
String(nullValue); // 'null'
はい、私たちは勝者を見つけたと思います。
ご覧の通り、String()はnullとundefinedを処理するのがいいです。何のエラーも投げられません。これが欲しいものでない限り。普通は私の提案を覚えてください。あなたが一番よく知っているアプリなので、あなたに似合う方法を選ぶべきです。
結論:String()
すべての異なる方法が異なる種類の値をどう処理するかを示した後で。これらの違いを知っていただきたいです。そして、今度コードを処理する時に使うツールを知っています。もしあなたが確実でないなら、String()はいつも良いデフォルトの選択です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。