20種類のキラーなJavaScriptワンライナー ☝️

Cover image for 20 Killer JavaScript One Liners ☝️

Savio Martin

2021年9月19日に投稿され、2021年12月1日に更新されました。

こんにちは、みなさん 👋

ここにいるサビオです。成功するウェブ開発者として成長することを目指す若手デベロッパーです。Reactでウェブアプリを作るのが大好きです。フロントエンド技術では自分の優越性を証明したことがあります。

今日は、人生を楽にする20種類のキラーなJavaScriptワンライナーを共有したいと思います。さあ、行きましょう 🚀


ブラウザのクッキーの値を取得する

document.cookie を使ってクッキーの値を取得します。

const cookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(';').shift();

cookie('_ga');
// 結果: "GA1.2.1929736587.1601974046"

RGBをヘックスに変換する

const rgbToHex = (r, g, b) =>
  "#" + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1);

rgbToHex(0, 51, 255); 
// 結果: #0033ff

クリップボードにコピーする

navigator.clipboard.writeText を使用して、任意のテキストをクリップボードに簡単にコピーします。

const copyToClipboard = (text) => navigator.clipboard.writeText(text);

copyToClipboard("Hello World");

日付が有効かどうかをチェックする

以下のコードスニペットを使用して与えられた日付が有効かどうかをチェックします。

const isDateValid = (...val) => !Number.isNaN(new Date(...val).valueOf());

isDateValid("December 17, 1995 03:24:00");
// 結果: true

年の日を見つける

与えられた日付で何日目かを見つけます。

const dayOfYear = (date) =>
  Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);

dayOfYear(new Date());
// 結果: 272

文字列を大文字にする

JavaScriptには組み込みの大文字化機能がないので、次のコードを使用します。

const capitalize = str => str.charAt(0).toUpperCase() + str.slice(1)

capitalize("follow for more")
// 結果: Follow for more

2つの日の間の日数を見つける

次のコードスニペットを使用して、2つの与えられた日の間の日数を割り出します。

const dayDif = (date1, date2) => Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000)

dayDif(new Date("2020-10-21"), new Date("2021-10-22"))
// 結果: 366

すべてのクッキーをクリアする

document.cookie を使ってウェブページに保存されているすべてのクッキーを簡単に消去できます。

const clearCookies = document.cookie.split(';').forEach(cookie => document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date(0).toUTCString()};path=/`));

ランダムなヘックスを生成する

Math.randompadEnd のプロパティを使ってランダムなヘックスカラーを生成できます。

const randomHex = () => `#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, "0")}`;

console.log(randomHex());
// 結果: #92b008

配列から重複を取り除く

Set を使ってJavaScriptで簡単に重複を取り除けます。本当にライフセーバーです。

const removeDuplicates = (arr) => [...new Set(arr)];

console.log(removeDuplicates([1, 2, 3, 3, 4, 4, 5, 5, 6]));
// 結果: [ 1, 2, 3, 4, 5, 6 ]

URLからクエリパラメータを取得する

window.location を渡すか、または生のURL google.com?search=easy&page=3 から簡単にクエリパラメータを取得できます。

const getParameters = (URL) => {
  URL = JSON.parse('{"' + decodeURI(URL.split("?")[1]).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') +'"}');
  return JSON.stringify(URL);
};

getParameters(window.location)
// 結果: { "search" : "easy", "page" : 3 }

日付から時間をログする

hour::minutes::seconds の形式で与えられた日付から時間をログできます。

const timeFromDate = date => date.toTimeString().slice(0, 8);

console.log(timeFromDate(new Date(2021, 0, 10, 17, 30, 0))); 
// 結果: "17:30:00"

数が偶数か奇数かをチェックする

const isEven = num => num % 2 === 0;

console.log(isEven(2)); 
// 結果: True

数字の平均を見つける

reduce メソッドを使って複数の数字間の平均値を見つけます。

const average = (...args) => args.reduce((a, b) => a + b) / args.length;

average(1, 2, 3, 4);
// 結果: 2.5

トップにスクロールする

window.scrollTo(0, 0) メソッドを使用してトップに自動スクロールします。xy を0に設定します。

const goToTop = () => window.scrollTo(0, 0);

goToTop();

文字列を反転させる

split, reverse, join メソッドを使って簡単に文字列を反転させます。

const reverse = str => str.split('').reverse().join('');

reverse('hello world');     
// 結果: 'dlrow olleh'

配列が空かどうかをチェックする

配列が空かどうかをチェックするシンプルなワンライナーで、true または false を返します。

const isNotEmpty = arr => Array.isArray(arr) && arr.length > 0;

isNotEmpty([1, 2, 3]);
// 結果: true

選択されたテキストを取得する

組み込みの getSelection プロパティを使ってユーザーが選択したテキストを取得します。

const getSelectedText = () => window.getSelection().toString();

getSelectedText();

配列をシャッフルする

sortrandom メソッドを使って配列を超簡単にシャッフルできます。

const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());

console.log(shuffleArray([1, 2, 3, 4]));
// 結果: [ 1, 4, 3, 2 ]

ダークモードを検出する

以下のコードを使って、ユーザーのデバイスがダークモードかどうかをチェックします。

const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches

console.log(isDarkMode) // 結果: TrueまたはFalse

👀 最後に

はい、それで全部です。この記事を楽しんでいただけたら嬉しいです。フィードバックを共有することをためらわないでください。私はTwitter @saviomartin7 にいます。フォローしてください!

私のGitHub @saviomartin もフォローしてください。素晴らしいプロジェクトを見逃さないで!💯

フィードバックは大歓迎です!🙌 素晴らしい一日を!

ウェブ開発者向けの10種類のキラーなJavaScriptスニペット 🔥

生産性をアップさせるためのワンラインJavaScriptスニペット。98.8%の人が全部知らないよ!

スレッド 🧵👇️

2021年9月20日 再七時六分

🌎 繋がりましょう