JavaScript の parseInt() の魔法についての簡単な説明

JavaScript の parseInt() の魔法についての簡単な説明

原因

このブログを書いた理由は、今日Leetcodeの日課問題をやっていたからです。文字列を整数(atoi)に変換する問題です。興味がある方はタイトルをクリックして詳しい説明をご覧ください。何度もデバッグしてようやく正常に送信できたので、コメント欄で専門家の解決策を見ました。読んでみて、JavaScript の parseInt() がこんなに優れているとは、とため息をつくしかありませんでした。これは真実を物語っています。私たちが非常によく知っていると思っている API も、実際には私たちが完全に使いこなしているわけではない可能性があるのです。 ”

私の答え

/**
 * @param {文字列} 文字列
 * @return {数値}
 */
var myAtoi = 関数(str) {
    str = str.trim();
    //文字列の最初の文字をインターセプトします var firstChar = str.charAt(),res = '',regSymbol = /^[\-\+]{1}/,regNumber = /^[0-9]{1}/;

    if(!regSymbol.test(firstChar) && !regNumber.test(firstChar)){
        0を返します。
    }

    //最初の文字は + または - です
    if(regSymbol.test(firstChar)){
        var sliceStr = str.slice(1,str.length);
        for(var i=0;i<sliceStr.length;i++){
            if (regNumber.test(sliceStr.charAt(i))) {
                res += sliceStr.charAt(i);
            }それ以外{
                壊す;
            }
        }
        
        (res.length) ? res = parseInt(firstChar + res) : res = 0;

        if(firstChar == '-' && res < Math.pow(-2,31)){
            引数は Math.pow (-2,31) です。
        }

        if(firstChar == '+' && res > Math.pow(2,31) - 1){
            2,31 の整数乗は 1 です。
        }

        res を返します。
    }

    //最初の文字は数字です if (regNumber.test(firstChar)) {
        var スライスStr = str;
        for(var i=0;i<sliceStr.length;i++){
            if (regNumber.test(sliceStr.charAt(i))) {
                res += sliceStr.charAt(i);
            }それ以外{
                壊す;
            }
        }

        (parseInt(res) > Math.pow(2,31) - 1)の場合{
            2,31 の整数乗は 1 です。
        }

        res を返します。
    }
};

上司からの答え

/**
 * @param {文字列} 文字列
 * @return {数値}
 */
var myAtoi = 関数(str) {
    定数数値 = parseInt(str, 10);

    if(isNaN(数値)) {
        0を返します。
    } そうでなければ、(数値 < Math.pow(-2, 31) || 数値 > Math.pow(2, 31) - 1) {
        Math.pow(-2, 31) ? Math.pow(-2, 31) : Math.pow(2, 31) - 1 未満の数値を返します。
    } それ以外 {
        戻り番号;
    }
};

比較すると、JavaScript の parseInt() は、空の文字列をインターセプトし、最初の文字を判断し、数値型の結果を返すなどの一連の操作を実行していることがわかります。ちょうど今日の毎日の質問にぴったりです。parseInt() を使用してこの問題を解決するのはとてもクールです。

JavaScript の parseInt() の素晴らしい使い方についての記事はこれで終わりです。JavaScript parseInt() に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。皆様が今後も 123WORDPRESS.COM を応援してくれることを願っています。

以下もご興味があるかもしれません:
  • js の parseInt() の奇妙な動作の調査と修正
  • JS 変換関数 Number()、parseInt()、parseFloat() の詳細な説明
  • JS の Number()、parseInt()、parseFloat() の詳細な理解
  • js の Number()、parseInt()、parseFloat() の違いの詳細な説明
  • JS における parseInt() と map() の使用法の分析
  • JavaScript の parseInt() 関数の定義と使用法の分析
  • Javascript関数parseInt()は変換時にバグが発生する
  • JavaScript のグローバル オブジェクトの parseInt() メソッドの使用方法の紹介
  • JavaScript parseInt() 関数の基数変換の注意点の詳細

<<:  冗長カーネルを削除するLinuxディープインの実装方法

>>:  MySQL でコミットされていないトランザクション情報を見つける方法

推薦する

MySQL で '%' を含むフィールドをクエリする方法の詳細な説明 (ESCAPE の使用法)

SQLのlike文では、例えば SELECT * FROM user WHERE username...

Linuxの読み取りコマンドの使用

1. コマンドの紹介read コマンドは、シェルの組み込みコマンドで、標準入力または -u オプショ...

MySQLはテーブルデータを復元するためにfrmファイルとibdファイルを使用します

目次frm ファイルと ibd ファイルの紹介frm ファイル回復テーブル構造ibd ファイル回復テ...

Dayjs を使用して Vue で一般的な日付を計算する方法

vue を使用してプロジェクトを開発する場合、フロントエンドでは次のような日付と時刻を計算する必要が...

MySQLのグループカウントと範囲集計を実装する2つの方法

1つ目:通常動作 選択 SUM(ddd) AS count_days、 場合 aa.days >...

要素フォーム検証で検証プロンプトをクリアする方法

目次問題のシナリオ:解決: 1. フィールドを個別にチェックする2. フォームフィールドの下のフィー...

Eclipseを使用してMySQLデータベースに接続する方法を説明します

序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...

MySQL列挙型のテスト例

プロジェクトを開発しているとき、支払い済み、支払済み、クローズ済み、返金済みなどの注文ステータスなど...

Linux nlコマンドの使い方

1. コマンドの紹介nl (行数) は指定されたファイルに行番号を追加し、標準出力に書き込みます。フ...

異なるページ間のJavaScriptデータ転送(URLパラメータ取得)

Web ページでは、あるページに情報を入力すると、別のページにジャンプし、入力した情報が別のページ...

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります...

XHTML CSSを使用して正式なブログを書く

ブログの正式名称は「Web log」で、中国語で「ネットワークログ」を意味します。後にブログに短縮さ...

純粋な CSS3+DIV で小さな三角形の境界線効果を実現するためのサンプル コード

具体的なコードは次のとおりです。 HTMLコードは次のとおりです <div class=&qu...

Linux における「!」の知られざる使用法のまとめ

序文実際、Linux では、控えめな「!」が驚くほど多くの用途で使用されています。この記事では、「!...

protobuf の簡単な紹介と Ubuntu 16.04 環境でのインストールチュートリアル

protobufの簡単な紹介Protobuf は、Google のオープンソースのシリアル化プロトコ...