集める価値のある 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 は Python Flask+ nginx+uwsgi コンテナを構築します

Nginxをインストールするまずcentosイメージをプルしますdocker pull centos...

MySQLのexecute、executeUpdate、executeQueryの違い

execute、executeUpdate、executeQuery の違い (およびそれらの戻り値...

MySQL で誕生日から年齢を計算する複数の方法

以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...

CSS スタイルの優先順位はどれくらい複雑ですか?

昨晩、面接の質問を見ていたら、CSS スタイルの優先順位について特に明確に説明していない人が何人かい...

自作メニューをクリックする効果を実現するJavaScript

この記事では、自作メニューをクリックする効果を実現するためのJavaScriptの具体的なコードを参...

データベースクエリの最適化: サブクエリの最適化

1. 事例会社のトップ以外の従業員全員を年齢別にグループ化します。 t_emp で id が存在しな...

mysql5.7.17 zip の解凍とインストールの詳細な手順

1. ダウンロードアドレスhttps://dev.mysql.com/downloads/mysql...

4つのファイル拡張子 .html、.htm、.shtml、.shtm の違い

ウェブページを作り始めたばかりの友人の多くは、拡張子が非常に多いことに気づきます。実際、htm と ...

JavaScript setinterval 1秒遅延ソリューション

setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...

フロントエンドでよく使われるjs関数メソッド

目次1. メール2. 携帯電話番号3. 電話番号4. URLアドレスですか? 5. 文字列ですか? ...

PHP-HTMLhtml 重要な知識ポイントメモ(必読)

1. フレームセット、フレーム、iframeを使用して複数のウィンドウを実現する2. 画像上のマッ...

一定時間後にNavicatがデータベースから自動的に切断される問題の解決方法

これは、データベース サーバーが、接続が多すぎるのを避けるために、一定時間非アクティブな状態が続くと...

MySQL 8.0 Windows zip パッケージ版の詳細なインストール手順

MySQL 8.0 Windows zipのインストール手順は次のように紹介されています。準備する:...

img 画像タグに alt 属性を付与する必要がありますか?

img 画像タグに alt 属性を追加しますか?画像 img タグの alt 属性を見落とすことはよ...

行の高さと垂直方向の配置についての深い理解

いくつかの概念行ボックス: インライン ボックスを囲むボックス。1 つ以上の行ボックスが積み重ねられ...