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

推薦する

mysql コマンドライン スクリプトの実行例

この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...

vscode を使用したリモート Linux 開発の実装

過去に別れを告げるvscode にリモート SSH が導入される前は、Linux サーバー開発者の多...

HTML に埋め込まれた MP4 形式のビデオが再生できないのはなぜですか?

次のコードは、私の test.html にあります。ビデオは、c:\test.html などの絶対パ...

MySQL データベース ターミナル - 一般的な操作コマンド コード

目次1. ユーザーを追加する2. ユーザー名とホストを変更する3. パスワードを変更する4. ユーザ...

反応ループデータの実装(リスト)

まず、バックグラウンドから来るデータをシミュレートしてみましょう。ここでは、コードをわかりやすくする...

HTMLとリソースがどのように読み込まれるかを理解します

このブログのすべてのコンテンツは、クリエイティブ コモンズ ライセンスの下でライセンスされています。...

CSS スキル コレクション - 古典の中の古典

リンク上の点線のボックスを削除しますコードをコピーコードは次のとおりです。 a:アクティブ、a:フォ...

Vue要素ヘッダーにスラッシュを追加するための実装コード

<テンプレート> <div class="アプリコンテナ"&...

JavaScript における URL オブジェクトの素晴らしい使い方

目次序文解析パラメータURLパラメータを変更する要約する序文URLオブジェクトはページ側ではあまり使...

Mysql のデッドロックの表示とデッドロックの除去の詳細な説明

序文しばらく前にMysqlのデッドロック問題に遭遇したので、解決しました。問題の説明: Mysql ...

jsネイティブウォーターフォールフロープラグイン制作

この記事では、jsネイティブウォーターフォールフロープラグインの具体的なコードを参考までに共有します...

HTML知識ポイントの実践経験のまとめ

1. 表タグはtable、trは行、tdはセル、cellspacingはセル間の距離、cellpad...

Ubuntu16.04にclionをインストールするプロセス全体と手順の詳細な説明

CLion のプロセス全体を最初から説明します。CLion は、JetBrains がリリースした新...

国内SNSのホームページを比較・分析して得た経験をみんなで共有(写真)

この記事では、ソーシャル ウェブサイトのホームページを比較分析することで洞察を得て、ソーシャル ウェ...

Linux で削除できないファイル/フォルダの解決方法

序文最近、弊社のサーバーがハッカーの攻撃を受け、一部のファイルの属性が変更されたため、ウイルスファイ...