Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

JavaScript

JavaScriptの追加機能メモ(ES2022(ES13))

トップレベルならawaitを使うのにasyncが不要 クラスにプライベートなメンバが宣言可能に クラスに静的メンバが宣言可能に at演算子で配列の後ろからのアクセスが簡単に hasOwnPropertyを改良したhasOwn その他 久しぶりにJavaScriptでの開発を行うことにな…

JavaScriptの追加機能メモ(ES2021(ES12))

大きい数字を区切って人間が見やすくする 論理代入演算子 ??=演算子 ||=演算子 &&=演算子 replaceAll()メソッドによる文字列の一括置換 その他 久しぶりにJavaScriptでの開発を行うことになったので、過去のアップデートを拾ってみました。 ちなみに以下も記…

JavaScriptの追加機能メモ(ES2020(ES11))

BigInt型の導入 オプショナルチェーン(?.)で安全にチェーン null合体演算子(??) 正規表現でマッチした文字列をイテレータで返す(matchAll) 論理演算子(||) for-in文の順番が保証される その他 久しぶりにJavaScriptでの開発を行うことになったので、過去のア…

JavaScriptの追加機能メモ(ES2019(ES10))

文字列の片側だけ空白をトリミング(trimStart, trimEnd) 2要素の配列からオブジェクトを作る(Object.fronEntries) 配列の平坦化(flat, flatMap) flat flatMap catch句の引数の記述を省略可能 関数にtoString()を使用したときコメントも文字列となる Symbolの…

TypeScriptで使用する型について、ちょっと応用

応用 型エイリアス ジェネリクス タイプガード 型アサーション ユーティリティタイプ TypeScriptの勉強を開始したばかりのビギナーです。 TypeScriptを使用するなら、「最初に型を抑えておくべき」と思い、型の種類を調べてみました。 基本については以下に…

TypeScriptで使用する型の基本のまとめ

基本 プリミティブ型 リテラル型 プリミティブ型の例 リテラル型の例(1だけが代入可能な型を作成する例) リテラル型として表現できるプリミティブ型は次のとおりです。 リテラル型の用途 配列型 オブジェクト型 interface(型の構造に名前を付ける) オプ…

TypeScriptで「Hello World」をやってみた!

準備 package.jsonの作成 npmの初期化 TypeScriptのインストール ts-nodeのインストール tsonfig.jsonの作成 初期化の実施 ソースファイル置き場の指定 コンパイル対象がのファイルを指定する コンパイラオプションを設定する コンパイルターゲットの指定 組…

WindowsPCにTypeScriptをインストールしてみた。

前提 手順 手順0:作業用ディレクトリに移動する 手順1:npmの初期化を実施する 手順2:インストールコマンドを実行する 手順3:TypeScript用の設定ファイルを生成する。 TypeScriptに興味があるので開発環境構築を行ってみました。 前段階のNodeのイン…

Jestでcoverageを計測する方法

仕事でNode.js+Jestを使った時に、調べた内容のメモです。 前提 npm testが実施可能 実行環境 Node.js+Jestで単体テストを始める(環境構築) テスト実行方法 node_modulesが存在する階層で以下のコマンドを実行します。 npm test -- --coverage testの後に…

「npm関連のノート」のまとめ

Windows10にnodeをインストールしたときのメモ 「npm install」時のセキュリティ警告への対応方法 「npm audit」って何?って時に少し調べた時のノート 「package.json」って何?って時に少し調べた時のノート overworker.hatenablog.jp overworker.hatenabl…

Windows10にnodeをインストールしたときのメモ

node.jsがインストールされてないことを確認する <参考>node.jsがインストールされていない状態でnpm installを実施した際のエラーコメント nodeのインストーラーを入手する あまり考えずにインストールしたい場合(最新版LTS) 色々選びたい場合(過去のバ…

「Jset関連のノート」のまとめ

仕事でNode.js+Jestを使った時に、調べた内容のメモです。 前提 Windows10にnodeをインストールしたときのメモ 環境の構築 Node.js+Jestで単体テストを始める方法(環境構築) テストコードの作成 Node.js+Jestで単体テスト:Level0(スタート)~Level1(正…

Node.js+Jestで単体テストを始める(環境構築)

仕事でNode.js+Jestを使った時に、調べた内容のメモです。 前提 環境 OS:Windows10 Pro Nodeのインストール Windows10にnodeをインストールしたときのメモ 最終的なフォルダ構成 JestSample ├app/ │ ├sum.js(※1で作成) │ └__tests__/ │ └sum.test.js(※…

「ESLint関連のノート」のまとめ

仕事でNode.js+ESLintを使った時に、調べた内容のメモです。 環境の構築 VSCodeにESLintを導入する ESLintのチェックを部分的に回避する その他の記事へ overworker.hatenablog.jp

ESLintのチェックを部分的に回避する

どおしても回避できない場合のテクニック the maximum line length of 80. (max-len) 例えば「URLだから、短縮しようがなくない?」って時の対処方法 const SOMETHING_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx…

VSCodeにESLintを導入する

開発環境の構築に関して記載します。ここではスタイルairbnbを採用しまし。 作業0.前提条件 作業1.VSCodeにESLintを入れる(各自) 作業2.必要モジュールをインストールする(各自) 作業3.「.eslintrc.json」を作成する(代表者のみ) 作業4.VSCodeの…

JavaScriptのコーディング(条件分岐)

ショートコードテクニック elseのない分岐 trueケース falseケース その他の記事について ショートコードテクニック elseのない分岐 trueケース if(a===true){ console.log(a+a); } (a===true)&&console.log(a+a); falseケース if(!a){ console.log(a); } a|…

JavaScriptの文法(オブジェクトの保護)

オブジェクト保護のオプション一覧 Object.freeze Object.seal Object.preventExtensionsとObject.isExtensible 参考文献 オブジェクト保護のオプション一覧 操作 通常 フリージング シーリング 拡張不可 プロパティの追加 〇 × × × プロパティの読み込み 〇…

JavaScriptで配列やオブジェクトをコピーする

新しいオブジェクトに既存のオブジェクトを代入するだけでは、 別のオブジェクトを作成したことになりません。 既存のオブジェクトに影響を与えないような、別のオブジェクトを新規で作成する方法を記述します。 方法:オブジェクトのディープコピーを作成す…

Base32ってのもあるらしい

Base32とは 任意のデータを32種類の英数字に変換するエンコード方式。 大文字、小文字の区別がない環境でも利用可能 40bit(5文字)を8文字に変換していく 40bitに満たない場合は=でパディングする 種類 例 数 文字 A~Z 26種 数字 2~7 6種 合計 合計 32種 そ…

Base64についての事前学習

『JavaScriptはたまに使う』程度の筆者による、メモ書き程度の内容です。 Base64とは 任意のデータを64種類の英数字に変換するエンコード方式。 取扱いが可能なことが多い半角英数字(64種)に変換したうえでデータを扱う 種類 例 数 小文字 a~z 26種 大文…

JavaScriptの文法(例外とエラー処理)

Errorオブジェクト 例外処理(try...catch) 例外のスロー 例外処理とコールスタック try...catch...finally 例外処理は例外に限る 参考文献 Errorオブジェクト JavaScriptに用意されているオブジェクト インスタンスを生成するだけでは何も起こらない // イ…

JavaScriptの文法(マップとセット)

マップ(Map) ウィークマップ(WeakMap) セット(Set) ウィークセット(WeakSet) 参考文献 せっかくMap、Setが使えるのだからObjectを使うと決定する前に、Map、Setが使えないか?を考えるべき。 マップ(Map) オブジェクトの特徴(マップの違い) キー…

JavaScriptの文法(配列)

配列の基本 配列要素の操作 先頭・最後の要素に対する操作 複数要素の追加 部分配列 途中の要素の削除や途中の要素への追加 配列内の要素の削除や置換 配列を特定の値で埋める 逆転とソート 検索 indexOf(指定した値と最初に一致する要素の添え字番号を返す…

moment().isValid()がバグってる!?

24時00分00秒がtrue!?に納得できない。 やったこと その1:厳密比較(があるらしい)→ 試してみた→ 変化なし 1-1:リファレンスをよく読む 1-2:厳密比較を試してみた その2:問い合わせてみる リファレンスサイト上から問い合わせる stackoverflow(BETA…

JavaScriptで配列から重複する要素を取り除く

方法1:filterメソッドとindexOfメソッドを利用する const list = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun', 'Sun', 'Sun']; const day = list.filter((x,i,self) =>{ return self.indexOf(x) === i; }) console.log(day); // ["Sun", "Mo…

JavaScriptで配列の要素数を調べる

方法①:lengthを使用する a=[1,2,3]; console.log(a.length>3); 方法②:inを使用する a=[1,2,3]; console.log(3 in a); Arrayオブジェクトの場合、in演算子によってインデックスが存在するかを検査できる。 その他の記事について overworker.hatenablog.jp

JavaScriptで文字数をカウントする

方法1:.lengthで数える(×) 方法2:配列に変換する(〇) 方法3:配列に変換する(スプレッド構文を使用する)(〇) その他の記事について 文字数制限がある場合等、文字数を正確にカウントするときの処理 方法1:.lengthで数える(×) // 半角英数字…

JavaScriptで数値文字列を0で桁数をそろえる

桁数(文字数)が合わない数字等の桁あわせを実施する処理 方法1:sliceを使用する 方法2:padStartを使用する(ES2017) その他の記事について 方法1:sliceを使用する // 3桁で合わせる場合 a=1; a=('00'+a).slice(-3); console.log(a); // '001' 方法…

JavaScriptの文法(スコープ)

スコープと存在 静的スコープと動的スコープ グローバルスコープ ブロックスコープ 変数の隠蔽 関数、クロージャ、静的スコープ IIFE(即座に実行される関数) 関数のスコープと巻き上げ 関数の巻き上げ TDZ(Temporal Dead Zone) strictモード 参考文献 変…