Skip to content

Instantly share code, notes, and snippets.

@think49
think49 / delete-duplicate-line-0.2.1.js
Last active January 28, 2018 08:11
delete-duplicate-line.js: 文字列における重複行を削除する
/**
* delete-duplicate-line-0.2.1.js
* Delete duplicate line.
*
* @version 0.2.1
* @author think49
* @url https://gist.github.com/think49/9ccf52aa1f2d01e4417b6f0fb2d37ce9
* @license http://www.opensource.org/licenses/mit-license.php (The MIT License)
*/
@think49
think49 / [正規表現] AND条件を一つの正規表現で実装する方法.md
Created April 10, 2018 10:20
AND条件を一つの正規表現で実装する方法

[正規表現] AND条件を一つの正規表現で実装する方法

概要

"ABC" かつ "XYZ" を含む文字列にマッチさせる場合において、一つの正規表現で実現する方法を考えます。 なお、"ABC" と "XYZ" のどちらが先に出現するかは決まっていません。

肯定先読み (?=pattern)

肯定先読みでAND条件の一つ目の条件(ABC)を先読みする事で、2つ目の条件(XYZ)を検索する事が出来ます。

@think49
think49 / deep-freeze-from-object-1.0.0.js
Last active April 10, 2018 12:30
deep-freeze-from-object.js: オブジェクトのプロパティを含めて、Object.freeze
/**
* deep-freeze-from-object-1.0.0.js
* Freeze the deep objects in the object.
*
* @version 1.0.0
* @author think49
* @url https://gist.github.com/think49/2aa2f7a19ddc3f2030dd288839c29f2b
* @license http://www.opensource.org/licenses/mit-license.php (The MIT License)
*/

[JavaScript] プライベートプロパティを作る方法

概要

ECMAScript® 2017 (ES8) にはプライベートプロパティ(private property)、プライベートメソッド(private method)を作る方法が用意されていない為、独自に作る方法を考えます。

コード (Static版)

広く知られる手法は、関数スコープやブロックスコープで括り、内部スコープに変数を定義することです。 (※このコードはインスタンスを複数生成しても、共通参照のプライベートメソッドが呼び出される為、別参照にしたい場合には後述の Instance版を使用する必要があります。)

[JavaScript] オブジェクト, Map, WeakMap の使い分け方

概要

JavaScript で下記4点を連想配列として用いる場合の使い分け方を解説します。

  • オブジェクト初期化子
  • Object.create(null)
  • Map
  • WeakMap
@think49
think49 / bind-from-function-1.0.0.js
Last active April 22, 2018 14:54
bind-from-function.js: 任意のインデックスの引数束縛した関数を生成
/**
* bind-from-function.js
* Create a function with arguments and this bound.
*
* @version 1.0.0
* @author think49
* @url https://gist.github.com/think49/59c9b5b7ca5b0b15cea5192046549fdf
* @license http://www.opensource.org/licenses/mit-license.php (The MIT License)
*/
@think49
think49 / [JavaScript] WebブラウザでJavaScriptコードを実行するタイミング.md
Last active March 7, 2021 06:30
[JavaScript] WebブラウザでJavaScriptコードを実行するタイミング.md

[JavaScript] WebブラウザでJavaScriptコードを実行するタイミング

初めに

概要

「JavaScriptコードが実行されるタイミング」について、JavaScript初学者向けに解説します。 解説は、次の3つに分類されます。

  • HTMLがパース⇒実行される過程
@think49
think49 / map-prototype-sort-1.0.0.js
Last active May 9, 2018 14:51
map-prototype-sort.js: Array.prototype.sort 互換のメソッドを定義
/**
* map-prototype-sort-1.0.0.js
* Sort map object.
*
* @version 1.0.0
* @author think49
* @url https://gist.github.com/think49/daaf5ee0a4f12092862c81c54747bae5
* @license http://www.opensource.org/licenses/mit-license.php (The MIT License)
*/
@think49
think49 / parse-date-string-1.0.0.js
Last active May 24, 2018 14:52
parse-date-string.js
/**
* parse-date-string-1.0.0.js
* Parse Date String (YYYY-MM-DD hh:mm:ss).
*
* @version 1.0.0
* @author think49
* @license http://www.opensource.org/licenses/mit-license.php (The MIT License)
* @url https://gist.github.com/think49/809f36e82806e9a6f85ad3e115f6bf35
*/
@think49
think49 / [Office] Office Open XML (xlsx).md
Last active August 4, 2018 09:22
[Office] Office Open XML (xlsx).md

[Office] Office Open XML (xlsx)

概要

拡張子「xlsx」のOffice Open XMLフォーマットについて。

仕様

Microsoft