6時だョ!!全員集合!!

Rails・JavaScrictを中心にアウトプットします。

2021-11-01から1ヶ月間の記事一覧

2021年11月30日 JavaScript (JS Primer) 正規表現

[コラム]RegExp#execメソッド String#matchAllメソッドは、ES2020で導入されたメソッドです。 それまでは、RegExp#execメソッドというString#matchメソッドによく似た挙動をするメソッドを利用して、String#matchAllメソッド相当の表現を実装していました。 …

2021年11月29日 JavaScript (JS Primer) 正規表現

マッチした文字列の一部を取得 キャプチャリング キャプチャリングとは、正規表現中で/パターン1(パターン2)/のようにカッコで囲んだ部分を取り出すことです。 String#matchメソッドとString#matchAllメソッドはどちらもキャプチャリングに対応しています。 …

2021年11月27日 JavaScript (JS Primer) 正規表現

正規表現による検索 (続き) 正規表現によるマッチした文字列の取得 文字列による検索では、検索した文字列そのものがマッチした文字列になります。 しかし、searchメソッドの正規表現による検索は、正規表現パターンによる検索であるため、検索してマッチし…

2021年11月25日 JavaScript (JS Primer) 正規表現

正規表現は英語で「Regular Expression」です。 正規表現で使用する特殊文字 正規表現とは、「いくつかの文字列を一つの形式で表現するための表現方法」です。その「一つの形式で表現するため」に、いくつかのある文字に対して特別な意味を与えています。 - …

2021年11月23日 JavaScript (JS Primer) 文字列

文字列の比較 文字列の比較には===(厳密比較演算子)を利用します。 次の条件を満たしていれば同じ文字列となります。 文字列の要素であるCode Unitが同じ順番で並んでいるか 文字列の長さ(length)は同じか // "A"と"B"のCode Unitは65と66 console.log("…

2021年11月22日 JavaScript (JS Primer) 文字列

ダブルクォートとシングルクォート "(ダブルクォート)と'(シングルクォート)に意味的な違いはありません。 const double = "文字列"; console.log(double); // => "文字列" const single = '文字列'; console.log(single); // => '文字列' // どちらも同…

2021年11月20日 JavaScript (JS Primer) reduceメソッド

reduceメソッド 前回のコールバック関数の結果を元に、コールバック関数を実行するメソッドです。reduceの最終的な返り値は、配列以外の任意の値になります。 const array = [1, 2, 3]; // すべての要素を加算した値を返す // accumulatorの初期値は`0` cons…

2021年11月19日 JavaScript (JS Primer) 破壊的メソッドと非破壊的メソッド

配列から要素を削除(つづき) lengthプロパティへの代入 配列のlengthプロパティへ要素数を代入すると、その要素数に配列が切り詰められます。 つまり、lengthプロパティへ0を代入すると、インデックスが0以降の要素がすべて削除されます。 配列の長さが0とい…

2021年11月18日 JavaScript (JS Primer)配列をフラット化・配列から要素を削除

[ES2019] 配列をフラット化 Array#flatメソッド 多次元配列をフラットな配列に変換できます。 引数を指定しなかった場合は1段階のみのフラット化ですが、引数に渡す数値でフラット化する深さを指定できます。 配列をすべてフラット化する場合には、無限を意…

2021年11月16日 JavaScript (JS Primer) 指定範囲の要素を取得

指定範囲の要素を取得 Array#sliceメソッド slice は end 自体は含めず、その直前まで取り出します。例えば、slice(1,4) は 2 番目から 4 番目までの要素 (インデックスがそれぞれ 1, 2, 3 番目の要素) を取り出します。 const array = ["A", "B", "C", "D",…

2021年11月15日 JavaScript (JS Primer) 配列

コラム:Object.prototypeを継承しないオブジェクト Objectはすべてのオブジェクトの親になるオブジェクトであるという話でしたが、例外もあるそうです。 以下のコードではObject.prototypeを引数に持たずにnullを渡すと、prototypeは継承しないことが分かり…

2021年11月13日 JavaScript (JS Primer) prototypeオブジェクト

ビルトインメソッド JavaScriptにおけるオブジェクトに自動的に実装されるメソッドです。 前の章で紹介されていたtoStringメソッドもそのうちのひとつで、すべてのオブジェクトがtoStringを持っています。 Objectはすべての元 Array、String、Functionなどの…

2021年11月12日 JavaScript (JS Primer) オブジェクトのマージと複製

オブジェクトのマージと複製 Object.assignメソッド Object.assignメソッドを使うと、オブジェクトの複製やオブジェクト同士のマージができます。以下に、Object.assignメソッドの基本構文を記載します。 // 第一引数に、マージさせるtargetオブジェクトを書…

2021年11月11日 JavaScript (JS Primer) toStringメソッド

toStringメソッド オブジェクトのtoStringメソッドは、オブジェクト自身を文字列化するメソッドです。 Stringコンストラクタ関数は、引数に渡されたオブジェクトのtoStringメソッドを呼び出しています。 const obj = { key: "value" }; console.log(obj.toSt…

2021年11月9日 JavaScript (JS Primer) Optional chaining演算子

プロパティの値がundefinedかどうか確認しプロパティの存在を確認する if文を使うことで、プロパティの値がundefinedかどうか確認できます。プロパティの値があることが前提ならばundefinedかどうかを確認することでプロパティの存在の有無を確認する事にな…

2021年11月8日 JavaScript (JS Primer) Computed property names

Computed property names Computed property namesとは、オブジェクトリテラル内でのブラケット記法を使ったプロパティ名です。Computed property namesを使うことで、プロパティ名を動的に作成できます。 const key = "age"; const person = { [key]: "25" …

2021年11月6日 JavaScript (JS Primer) 分割代入

分割代入 前回オブジェクトのプロパティにアクセスする方法を学習しました。 以下はオブジェクトのプロパティを変数として定義し直しています。 const languages = { ja: "日本語", en: "英語" }; const ja = languages.ja; const en = languages.en; consol…

2021年11月5日 JavaScript (JS Primer) オブジェクト

これまでに学習してきたfor文やforEachメソッドで数値の合計を返すsum関数を学習してきましたが、いずれの方法もletで再代入して反復処理を行う必要がありました。 reduceメソッドを使えば一時的な変数を定義せずに反復処理した結果だけを受け取ることが出来…

2021年11月4日 JavaScript (JS Primer) ループと反復処理

Object.keysメソッド 前回はfor...inメソッドを使った際に親オブジェクト自身がプロパティを持っている場合に意図しない結果を生んでしまうこと問題があるという点まで学習しました。 Object.keysメソッドを使うことで安全にオブジェクトのプロパティを列挙…

2021年11月2日 JavaScript (JS Primer) ループと反復処理(3)

配列のsomeメソッド someメソッドを使うことで、配列の要素をテストします。テストがtrueになる要素が1つでもある場合、someメソッドはtrueを返します。テストはアロー関数で書きます。 const array = [1, 2, 3, 4, 5]; // 要素が2の倍数かテストする。 cons…

2021年11月1日 JavaScript (JS Primer) ループと反復処理(2)

配列における反復処理 forEachメソッドを使うことで、配列の全ての要素に対して反復処理を実行できます。引数で渡したコールバック関数を、全ての要素に対して実行します。 let array = ["10月","11月","12月"]; array.forEach((month) => { console.log(mon…