集める価値のある 15 個の JavaScript 関数

集める価値のある 15 個の JavaScript 関数

1. 数字を逆にする

定数逆数 = n =>
  parseFloat(`${n}`.split('').reverse().join('')) * Math.sign(n);

逆数(123); // 321
逆数(-200); // -2
逆数(32.4); // 4.23
逆数(-32.4); // -4.23

2. 配列内の最大のn個の数値を取得する

const maxFromArray = (配列、数値 = 1) => [...配列]
  .sort((x, y) => y -x).slice(0, 数値);

maxFromArray([2, 1, 4, 3, 5, 6]); // [6]
maxFromArray([2, 1, 4, 3, 6, 6], 2); // [6, 6]


3. 階乗を計算する

const 階乗 = (数値) =>
  数値 < 0
    ? (() => {
      新しい TypeError をスローします ('型エラー')。
    })()
    : 数値 <= 1
    ? 1
    : 数値 * 階乗(数値 - 1);

階乗(4); // 24
階乗(10); // 3628800


4. 現在の動作環境がブラウザであるかどうかを判断する

const isBrowser = () => ![typeof window, typeof document].includes('undefined');

isBrowser(); // false (ノード)
isBrowser(); // true (ブラウザ)


5. 現在の動作環境がNode.jsであるかどうかを確認する

定数isNode = () =>
  プロセスのタイプ !== 'undefined' &&
  !!プロセス.バージョン &&
  !!プロセス.バージョン.ノード;

isNode(); // true (ノード)
isNode(); // false (ブラウザ)


6. URLのパラメータを取得する

const getURLParams = url =>
  (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
    (a, v) => (
      (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1))、a
    )、
    {}
  );

getURLParams('qq.com'); // {}
getURLParams('https://xx.com?name=tntweb&age=20');
// {名前: 'tntweb'、年齢: '20'}


7. rgb(x,x,x)カラー表現形式をオブジェクト形式に変換する

定数toRGBObject = rgbStr => {
  const [赤、緑、青] = rgbStr.match(/\d+/g).map(Number);
  { 赤、緑、青 } を返します。
};

toRGBObject('rgb(100, 150, 200)'); // {赤: 100、緑: 150、青: 200}

8. HTMLで使用するための文字列のエスケープ

const escapeHTML = str =>
  str.replace() 文字列を置換します。
    /[&<>'"]/g,
    タグ =>
      ({
        '&': '&amp;',
        '<': '&lt;',
        '>': '&gt;',
        "'": '&#39;',
        '"': '&quot;'
      }[タグ] || タグ)
  );

escapeHTML('<a href="#" rel="external nofollow" >tntweb</a>'); 


9. アンエスケープはHTML文字をエスケープします

const unescapeHTML = str =>
  str.replace() 文字列を置換します。
    /&amp;|&lt;|&gt;|&#39;|&quot;/g,
    タグ =>
      ({
        '&': '&',
        '&lt;': '<',
        '&gt;': '>',
        '&#39;': "'",
        '&quot;': '"'
      }[タグ] || タグ)
  );

unescapeHTML('&lt;a href=&quot;#&quot;&gt;tntweb&lt;/a&gt;');


10. 指定された範囲内でランダムな整数を生成する

定数ランダム整数範囲 = (最小, 最大) =>
  Math.floor(Math.random() * (max - min + 1)) + min;

ランダム整数範囲(1, 7); // 1 - 7


11. チルダパスを絶対パスに変換する

const 逆パス = str =>
  str.replace(/^~($|\/|\\)/, `${require('os').homedir()}$1`);

逆パス('~/web'); // '/Users/[ユーザー名]/web'


12. パラメータやフラグメント識別子なしで現在のURLを取得する

const getBaseURL = url => url.replace(/[?#].*$/, '');

'https://xx.com/index?name=tntweb&company=tencent' を取得します。
// https://xx.com/index


13. 文字列の長さをバイト単位で返す

const byteSize = str => new Blob([str]).size;

バイトサイズ('🚗'); // 4
byteSize('Hello World'); // 11


14. 配列内の要素をランダムに取得する

const ランダム = arr => arr[Math.floor(Math.random() * arr.length)];

ランダムに([1, 3, 5, 7, 9, 11]);


15. 文字列が有効なJSONであるかどうかを確認する

定数isValidJSON = str => {
  試す {
    JSON を解析します。
    true を返します。
  } キャッチ (e) {
    false を返します。
  }
};

isValidJSON('{"name":"tntweb","age":20}'); // 真
isValidJSON('{"name":"tntweb",age:"20"}'); // 偽
isValidJSON(null); // 真

これで、収集する価値のある 15 個の JavaScript 関数に関するこの記事は終了です。より関連性の高い JavaScript 関数のコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript 関数型プログラミングの基礎
  • JS関数の継承について学ぶ記事
  • JavaScript 基礎シリーズ: 関数とメソッド
  • JS関数の呼び出し、適用、バインドの超詳細な方法
  • JavaScript 関数呼び出し、適用、バインド メソッドのケース スタディ
  • JavaScript の矢印関数と通常の関数の違いの詳細な説明
  • JavaScript の知識: コンストラクタも関数である
  • JavaScriptのスリープ関数の使用
  • JavaScript における変数と関数の昇格の詳細な例
  • JavaScript の 50 以上のユーティリティ関数の概要

<<:  MySQL データベース クエリ パフォーマンス最適化戦略

>>:  MySQL はどのようにしてデータの整合性を確保するのでしょうか?

推薦する

TomcatをダウンロードしてLinuxにインストールする詳細な手順

Linux に触れたばかりの方には、この内容が役に立つかもしれません。Linux にしばらく触れてい...

Vue における v-model を使用したクロスコンポーネントバインディングの基本的な実装方法

みなさんこんにちは。今日はv-modelを使って親子コンポーネントのバインディング効果を実現する方法...

MySQL の一般的な日付比較および計算関数

MySql での時間比較の実装unix_timestamp() unix_timestamp 関数は...

JSはフロントエンドのページング効果を実現します

この記事の例では、フロントエンドのページング効果を実現するためのJSの具体的なコードを参考までに共有...

Tomcat の構成と最適化ソリューションの詳細な説明

サービス.xml Server.xml 構成ファイルは、コンテナー全体を構成するために使用されます。...

Windows の MySQL net start mysql MySQL サービスの起動エラーが発生する システムエラーの解決

目次1- エラーの詳細2-シングルソリューション2.1-ディレクトリ C:\Windows\Syst...

HTML ページに SVG を挿入する複数の方法

SVG (Scalable Vector Graphics)は、XML 構文に基づいた画像形式です。...

MySQLのスケジュールタスクが正常に実行できない原因の分析と解決

目次序文原因分析と解決策スケジュールされたタスクを迅速に実行する要約する序文データベースのスケジュー...

Mysql の一時テーブルとパーティションテーブルの違いの詳細な説明

一時テーブルとメモリテーブルメモリ テーブルとは、メモリ エンジンを使用するテーブルを指します。テー...

MySQL マスター スレーブ データが矛盾しています。プロンプト: Slave_SQL_Running: 解決策はありません

この記事では、MySQL マスターとスレーブ データ間の不一致の解決方法と、プロンプト「Slave_...

MySQL データベースのアップグレードにおけるいくつかの「落とし穴」

商用データベースの場合、データベースのアップグレードは優先度が高く、バージョンアップのロードマップ、...

MySQLを使用して列内の異なる値の数をカウントする例

序文この記事で実装されている要件は、実際には非常に一般的です。たとえば、ユーザーが登録したチャネルを...

MySQL シリーズ 14 MySQL 高可用性実装

1. 内閣府マスターノードを監視することで、他のスレーブノードへの自動フェイルオーバーを実現できます...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...

ffmpeg 中国語パラメータの説明と使用例

1. ffmpeg がビデオ ファイルをプッシュする場合、オーディオとビデオのエンコード形式は H2...