JavaScriptで値を文字列に変換する方法

String組み込み関数、toStringメソッドなど

Unsplashのfreestocksによる写真。

この投稿では、あらゆる種類の値を文字列に変換するための4つの異なる良い方法と悪い方法を見ていきます。

以下の値を考慮して変換します。

console.log(typeof 1);
//number
console.log(typeof true)
//boolean
console.log(typeof null)
//object
console.log(typeof undefined)
//undefined
console.log(Array.isArray([1,2,3]))
//true
console.log(typeof { msg: 'Hi' })
//object
console.log(typeof Symbol('id'));
//symbol

String組み込み関数の使用

String組み込み関数は、文字列に任意の値を変換することができます。これは、プリミティブ型を文字列に変換するための最良のオプションです。

String(1)
//'1'
String(true)
//'true'
String(null)
//'null'
String(undefined)
//'undefined'
String([1,2,3])
//'1,2,3'
String({ msg: 'Hi'})
//'[object Object]'
String(Symbol('id'))
//'Symbol(id)'

テンプレート文字列の使用

テンプレート文字列を使用すると、式を埋め込むことができます。これらの式は文字列に変換されます。以下の例を確認してください。

`${1}`
//'1'
`${true}`
//'true'
`${null}`
//'null'
`${undefined}`
//'undefined'
`${[1,2,3]}`
//'1,2,3'
`${{ msg: 'Hi'}}`
//'[object Object]'

`${Symbol('id')}`
//Cannot convert a Symbol value to a string

JavaScriptでは、すべてのオブジェクトはObject.prototype。から継承します。つまり、すべてのユーザーが、を含むそのオブジェクトに格納されているメソッドにアクセスできますtoString。

これは、toStringオブジェクトまたは配列を呼び出した結果です。

[1,2,3].toString()
//'1,2,3'
{ msg: 'Hi'}.toString()
//'[object Object]'

const prototype = {
  toString(){
    return JSON.stringify(this);
  }
}
const obj = Object.create(prototype);
obj.msg = 'Hi';
console.log(obj.toString());
//''{"msg":"Hi"}''

toString数値やブール値などのプリミティブでメソッドを呼び出すことができるのは興味深いことです。以下のコードを確認してください。

(1).toString()
//'1'
true.toString()
//'true'
Symbol('id').toString()
//'Symbol(id)'

除くすべてのプリミティブのためnullとundefinedJavaScriptが組み込まれているようなラッパーの機能NumberやBoolean。これらの関数コンストラクターを使用してオブジェクトを作成toStringしてから、新しく作成されたオブジェクトのメソッドを呼び出します。このようなことが舞台裏で起こります。

new Number(1).toString()

null.toString()
//Cannot read property 'toString' of null
undefined.toString()
//Cannot read property 'toString' of undefined

文字列に変換するための最後のオプションは、文字列の連結を行うことです。次の例を確認してください。

'' + 1
//'1'
'' + true
//'true'
'' + null
//'null'
'' + undefined
//'undefined'
'' + [1,2,3]
//'1,2,3'
'' + { msg: 'Hi'}
//'[object Object]'

数値を加算する代わりに連結を行うと、次のようになります。

1 + '2'
//'12'

console.log('' + Symbol('id'))
//Cannot convert a Symbol value to a string

文字列変換に関して共有したかったのはこれだけです。読んでくれてありがとう。

提案された投稿

ドメイン名に関する情報の検索

Brian P. Hogan 著『Small, Sharp Software Tools』からの抜粋

ドメイン名に関する情報の検索

facebook.com にリクエストを送信すると、コンピュータはドメイン名を検索してそのドメイン名を IP アドレスに変換し、コンピュータが接続できるようにします。

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

脳卒中の壊滅的な結果を避ける: 家族の旅から学ぶ 。

はじめに 脳卒中は、いつでも誰でも起こり得る医療上の緊急事態です。これは、脳の一部への血流が中断され、脳機能が突然失われることで発生します。

関連記事

カウボーイの嘘

巨大企業はいかにしてアメリカ国民にひどい嘘を売ったのか

カウボーイの嘘

西のなだらかな丘陵地帯では、太陽の最初の光が平原の曇った草を照らす、まばゆいばかりの金色の朝です。真っ黒で巨大な穏やかなアンガス牛の群れが日の出を背景にシルエットを描き、誰もがよく知っている場所へ人里離れた道を進んでいます。朝食バー。

アートは政治的ではないのでしょうか?

アートは政治的ではないのでしょうか?

昨日、私たちは今年のユーロビジョン・ソング・コンテストの幕を閉じました。きらびやかでカオスなグランドフィナーレでスウェーデンの歌手ローリーンがトロフィーを持ち帰り、女性として初めて2回優勝し、ABBAがコンテストで優勝してから50年目にその栄冠をスウェーデンに持ち帰りました。 「ワーテルロー」で。彼らはポップ ミュージックの規範において最大のアーティストの 1 つになりました。

「マリアナ海溝の公開: 深淵の恐るべき隠された真実を明らかにする」

「マリアナ海溝の公開: 深淵の恐るべき隠された真実を明らかにする」

はじめに:勇敢な読者の皆さん、地球の最も暗い深みへ私たちを導く旅へようこそ。このブログでは、マリアナ海溝の謎に満ちた世界を掘り下げ、その隠された秘密を明らかにし、その表面の下にある骨も凍るような真実を明らかにします。

その脅威アーカイブ: Vol 7 ブラックバスタ

その脅威アーカイブ: Vol 7 ブラックバスタ

今日の相互接続された世界では、サイバー攻撃の脅威がかつてないほど蔓延しています。サイバー犯罪者や国家主体は常に脆弱性を悪用して貴重なデータを盗もうとしており、あらゆる規模の組織に重大なリスクをもたらしています。