web-dev-qa-db-ja.com

Javascript parseInt()と基数パラメーターの使用

parseInt()関数がどのように機能し、基数パラメーターとは何かを誰かが説明できますか?

ケーススタディとして、私はこのコードスニペットを理解しようとしています。

var maxChars = parseInt( formField.attr('maxlength') ? formField.attr('maxlength') : counter.text() );

このコードがどのように機能するかについても説明できますか? formField.attr( 'maxlength')が2回あるのはなぜですか?ここでの演算子の使用はかなり混乱します!

この例では、基数パラメータはどのように機能しますか?

24
shrewdbeans

radixbaseの別名です。つまり、2進数の場合は2、10進数の場合は10、16進数の場合は16です。詳細については、 Mozilla Developer Networkサイト で説明されています。

あなたの例には基数パラメーターがないため、インタープリターはデフォルトの動作にフォールバックします。これは通常、数値が10進数で始まらない限り10進数として扱われます。ゼロ(8進数)または0x(16進数)。

40
Alnitak

ECMAスクリプト5では、文字列が0で始まり、基数が指定されていない場合、デフォルトの動作は10進数です(以前のバージョンでは8進数でした)。

ソース: Mozilla Developer NetworkのparseInt()

4
Peter Machowski

parseInt2つのパラメーターを取り、2番目のパラメーターはオプションです。文字列と基数。

Stringは解析する値です。指定された値が文字列でない場合は、文字列に変換されます。

Radixは、2と36の間の整数であり、上記の文字列の基数(数式の基数)を表します。 。

コードスニペットでは基数が指定されておらず、デフォルトで16と見なされます。

var maxChars = parseInt( formField.attr('maxlength') ? formField.attr('maxlength') : counter.text() );

「maxChars」という変数を定義しています。この変数は、短縮形のIFステートメントの評価と同じです。

「maxLength」と呼ばれるセレクター「formField」であることが期待される変数から属性を取得しています。値は整数として返され、デフォルトの基数にフォールバックします。

IFステートメントは、戻り値がtrueかfalseかをチェックします。 0、false、ectceteraは、変数「maxChars」の値が「counters」結合テキストに設定される結果になります。 trueの場合、変数は「maxLength」と呼ばれるセレクター「formField」属性として設定されます。

formField.attr('maxlength')

1つはIFステートメントの評価で使用され、もう1つはIFステートメントの条件がTRUEの場合の値として使用されるため、2回存在します。

0
Blake Basas