JavaScript toString方法原理
4877 ワード
本稿では、String方法を簡単に紹介します.
Stringメソッドの役割は、オブジェクトの文字列形式を返すことである.私たちはやはり異なるタイプのデータに分けて議論します.
1.Srting、文字列タイプの直接元の値を返します. a.NaNに対して、 Infinity、-Infinityは、文字形式に戻ります. b.整数には、引用符を付けて直接返します.ToSteringメソッドを直接呼び出すとエラーが発生します.整数の後の点は小数点と識別されますので、括弧を入れるといいです. c.浮動小数点に対して、直接toStringメソッドを呼び出して、直接引用符を付けて返すことができます. d.いくつかの前に正負号がある数値に対して、括弧を入れてtoStringメソッドを呼び出します.そうでないと、先にtoString()の方法を実行してから、プラスとマイナスの番号を追加して、陰で数字に変換します. e.数値タイプのtoString方法は、変換ベース数(radix)を示す任意のパラメータを受信することもできる.このパラメータを指定しないと、変換規則は10進数に基づいています. 4.nullとundefined、toString方法がなく、直接呼び出しはエラーが発生しますが、コール方法が使えます. a.内蔵のオブジェクトとカスタムのオブジェクトは、「[object]」に戻ります. Object""; b.関数Functionタイプは、関数コードを返します. c.配列Arayタイプは、配列内の各値の文字列形式でスティッチングされたカンマ区切りの文字列を返します. d.時間Dateタイプは、現在のタイムゾーンの時間を表す文字列表現を返します. e.正規表現RegExpタイプは、正規表現の文字列表現の文字列の量を返します. f.エラーErrタイプ. 6.toString()の応用.値: 文字列: ブール値: undefined: null: 配列: アーグメンントオブジェクト: 関数: Errオブジェクト: Dateオブジェクト: RegExpオブジェクト: 他のオブジェクト:
Stringメソッドの役割は、オブジェクトの文字列形式を返すことである.私たちはやはり異なるタイプのデータに分けて議論します.
1.Srting、文字列タイプの直接元の値を返します.
'123'.toString(); // "123"
''.toString(); // ""
2.Boolean、ブール値タイプは対応する文字形式を返します.true.toString(); // 'true'
false.toString(); // 'false'
3.Number、数値の種類はちょっと複雑です.NaN.toString(); // 'NaN'
Infinity.toString(); // 'Infinity'
+Infinity.toString(); // Infinity
(+Infinity).toString(); // 'Infinity'
(-Infinity).toString(); // '-Infinity'
-Infinity.toString(); // -Infinity
123.toString(); // Uncaught SyntaxError: Invalid or unexpected token
(123).toString(); // '123'
1.23.toString(); // '1.23'
+1.23.toString(); // 1.23
(+1.23).toString(); // '1.23'
-1.23.toString(); // 1.23
(-1.23).toString(); // '-1.23'
NaN.toString(2); // 'NaN'
Infinity.toString(2); // 'Infinity'
(17).toString(); // '17'
(17).toString(2); // '10001'
(17).toString(8); // '21'
(17).toString(8); // '11'
null.toString(); //
Object.prototype.toString.call(null) // "[object Null]"
undefined.toString(); //
Object.prototype.toString.call(undefined) // "[object Undefined]"
5.複合タイプ、戻り 「[object] タイプライター type
は、オブジェクトの種類です.配列、関数、Dateオブジェクトは、それぞれカスタムtoString
方法を配置し、Object.prototype.toString
方法をカバーしている.Object.prototype.toString(); // "[object Object]"
const obj = {
name: 'josavion',
};
obj.toString(); // "[object Object]"
function Person() {
this.name = 'josavion';
}
const person = new Person();
person.toString(); // "[object Object]"
Person.toString(); /* "function Person() {
this.name = 'josavion';
}" */
Object.toString(); // "function Object() { [native code] }"
function test(){
console.log('test');
}
test.toString(); /* "function test(){
console.log('test');
}" */
const haha = () => {};
haha.toString(); // "() => {}"
Function.toString(); // "function Function() { [native code] }"
[].toString(); // ""
[1, 2, 3].toString(); // "1,2,3"
Array.prototype.toString(); // "" ( toString )
Array.toString(); // "function Array() { [native code] }"
(new Date()).toString(); // "Wed Jun 24 2020 17:22:01 GMT+0800 ( )"
Date.toString(); // "function Date() { [native code] }"
/xyz/i.toString(); // "/xyz/i"
RegExp.toString(); // "function RegExp() { [native code] }"
const err = new Error('test');
err.toString(); // "Error: test"
Error.toString(); // "function Error() { [native code] }"
Object.prototype.toString
方法は、オブジェクトの種類の文字列を返しますので、値の種類を判断するために使用することができます.例示的なオブジェクトは、toString
方法をカスタマイズし、Object.prototype.toString
方法をカバーすることができるので、タイプの文字列を得るためには、Object.prototype.toString
方法を直接使用することが望ましい.関数call
法により、この方法は任意の値で呼び出すことができ、この値の種類を判断するのを助けてくれます.[object Number]
を返します.[object String]
を返します.[object Boolean]
を返します.[object Undefined]
を返します.[object Null]
を返します.[object Array]
を返します.[object Arguments]
を返します.[object Function]
を返します.[object Error]
を返します.[object Date]
を返します.[object RegExp]
を返します.[object Object]
を返します.