1

することで番号を作成できます

var n1 = 1;

また

var n1 = Number(1);

文字列と同じ

var s1 = 'string1';

また

var s1 = String('string1');

どのような場合に、より単純な方法ではなく、グローバルオブジェクトを使用したいと思うでしょう。

JavaScriptグローバルオブジェクトの文字列と数値はプログラミング時に使用できますか?

同様に

Regexp, Boolean, Function

代わりに適切な構文を使用してすべてインスタンス化できるこれらの目的はありますか?

4

5 に答える 5

2

それらを利用できるようにすることで、それらを拡張することができます。たとえば、ブラウザがそれを実装していない場合は、Array.isArrayメソッドを自分で追加できます。

Array.isArray = function( arr ) {
    return Object.prototype.toString.apply( arr ) === '[object Array]';
};

これは、ほとんどのポリフィルに適しています。

もう1つの良い例は、trim文字列のメソッドです。

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,'');
};

そうでなければ、実際には他の用途はありません。数値への変換は、で行う方が適切です。+文字列への変換は'' +、などで行う方が適切です。

ただし、私が定期的に使用するRegexpのは、便利なためですnew Regexp(変数に保存する場合、エスケープの必要性が少ないため、または正規表現を複数行に分割できるため)。

編集:私はちょうど別の使用法について考えました:

arr.filter( Boolean ); // Removes falsy values from the array "arr"
arr.map( Number ); // Converts every element of the array to a Number
于 2012-09-04T18:13:13.077 に答える
1

Number()関数として呼び出されると、引数として渡された値に対して型変換を実行します。同じことが。にも当てはまりますString()。数値を文字列にString(10)変換します10'10'

var n1 = 1;
// => 1

var n2 = 's';
// => 's'

だが:

var n3 = Number(1);
// => 1

var n4 = Number('s');
// => NaN
于 2012-09-04T18:12:29.470 に答える
1

MDNから:

Numberオブジェクトの主な用途は次のとおりです。

引数を数値に変換できない場合は、NaNを返します。

非コンストラクターコンテキスト(つまり、new演算子なし)では、Numberを使用して型変換を実行できます。

より一般的には(MDNの他のラッパークラスのドキュメントを読むことをお勧めします)、これらのクラスは型変換またはアサーションを実行するために使用されます。

于 2012-09-04T18:13:03.247 に答える
1

3番目があります:

var s1 = new String('string1');

省略形var s1 = 'string'は、実際には上の行の省略形です。それらはほとんど同じです。

あなたが与えた他の行、

var s1 = String('string1');

、実際には型キャストです。文字列を文字列に型キャストしているのですが、これは無意味です。しかし、次のように書くこともできます。

var s1 = String(10);

、この場合、数値10を文字列に型キャストします。これは、文字列から文字列への型キャストとは対照的に明らかに使用されます。

于 2012-09-04T18:14:40.080 に答える
1

プリミティブよりもオブジェクトを使用することには利点がある場合があります。

1)オブジェクトはメソッドを持つことができます。"hello world".length長さプロパティを使用できるように、プリミティブ文字列をオブジェクトに「オートボックス化」するのと同じくらい簡単なものです。

2)StringandNumberコンストラクターを使用することは、文字列/数値に変換する1つの方法ですが、通常はより良い方法があります。

于 2012-09-04T18:19:10.517 に答える