集める価値のある 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 はどのようにしてデータの整合性を確保するのでしょうか?

推薦する

docker デプロイメントの実装手順 lnmp-wordpress

目次1. 実験環境2. Dockerソースをインストールする3. Dockerをインストールする4....

判定条件を使用してCSSファイルをインポートする

解決策 1: HEAD に次のコードを挿入するなど、HTML ドキュメントで条件付きインポートを使用...

Docker nginxは1つのホストを実装して複数のサイトを展開します

とあるサイトからレンタルした仮想マシンの有効期限が近づいており、更新料が200元以上かかります。Al...

DockerとFastDFSのインストールコマンドと使い方の詳しい説明

Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...

border-radiusは要素に丸い境界線を追加する方法です

border-radius:10px; /* すべての角は半径 10px で丸められます*/ bor...

dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明

問題の起源docker を使用する場合、残念ながら docker コンテナ内のホストのポート 80 ...

Windows 8.1 で MySQL5.7 のルート パスワードを忘れた場合の解決方法

【背景】最近勉強中に非常に恥ずかしいことに遭遇しました。MySQL のパスワードを忘れてしまい、My...

js オプション連鎖演算子の使用

序文オプションの連鎖演算子 (?.) を使用すると、チェーン内の各参照が有効であることを明示的に検証...

MySQLの保存場所を新しいディスクに移行する方法

1. 新しいディスクを準備し、現在のルートパーティションと同じファイルシステムでフォーマットし、ディ...

MySQL の一般的なツール例の概要 (推奨)

序文この記事では主にMySQLでよく使われるツールに関する関連コンテンツを紹介し、皆さんの参考と学習...

JavaScriptはブラウザがIEかどうかを判定します

フロントエンド開発者としては、IEの落とし穴は避けて通れません。他のブラウザはいいのにIEは壊れてい...

MySQL インストール図の概要

MySQL 5.5 のインストールと設定方法のグラフィックチュートリアルMySQL 5.5 のインス...

Win10 + Ubuntu 16.04 デュアルシステム 完璧なインストールチュートリアル [詳細]

必ずデータをバックアップすることを忘れないでください。データは貴重なものです! ! !コンピュータモ...

ミニプログラムはミニプログラムクラウドを使用してWeChatの支払い機能を実装します

目次1. WeChat Payを開く1.1 アフィリエイト加盟店番号1.2 加盟店番号を追加する1....

MySQL 8.0.15 で MGR シングル マスターと複数スレーブを構成する方法

1. はじめにMySQL グループ レプリケーション (略して MGR) は文字通り MySQL グ...