- 変数
- 要素の取得
- 条件分岐(if 文)
- 配列
- オブジェクト
- 多次元配列
- イベントの登録(addEventListener)
- 要素の追加
- class の操作
- jQuery-each メソッド
- 関数
- git 用語集
- 参考サイト
ブログやドキュメントなどに分かりやすく、自分でまとめておきましょう。
自分で纏めることで、理解が深まるとともに、忘れた時に探しやすくなります。
変数
//再宣言なし、再代入可
let 変数名 = 〜;
//再宣言なし、再代入なし、オブジェクトの操作可
const 変数名 = 〜;
//再宣言・再代入可 ※使わない
var 変数名 = 〜;
要素の取得
//#idや.class、タグなどで取得。
let emList3 = document.querySelector('selectors');
//あるIDをもったElementを取得
let em1 = window.document.getElementById('div1');
//あるタグ(div)の全Elementを配列で取得※複数形
let emList1 = document.getElementsByTagName('div');
//あるclass(someClass)をもった全Elementを配列で取得※複数形
let emList2 = document.getElementsByClassName('someClass');
//例) 属性を取得する
let em1 = document.getElementById('div1');
let id1 = em1.getAttribute('id');
//例) 内部のHTMLを取得する
let html1 = em1.innerHTML;
//jQuery
$('selector');
//あるIDをもったElementを取得
$('#id');
//あるタグ(div)の全Elementを配列で取得
$('div');
//あるclass(someClass)をもった全Elementを配列で取得
$('.someClass');
//例) 属性を取得する
$('#div1').attr('id');
//例) 内部のHTMLを取得する
let html1 = $('#div1').html();
条件分岐
if 文は、指定された条件が真(truthy)ならば文を実行します。
条件が偽(falsy)なら、もう一方の文を実行することができます。
if (x > 50) {
/* 何かを行う */
} else if (x > 5) {
/* 何かを行う */
} else {
/* 何かを行う */
}
配列
[要素名,要素名,要素名,要素名]
// new 演算子で定義 ※()の中に配列の要素数を設定できる。
let 配列名(変数)= new Array();
// 配列リテラルで定義
let 配列名(変数)= [];
//要素の取得
console.log(配列名[添字]);
for 文で取得
配列は、for 文もしくは for…of 文でループして取得します。
for (初期化式; 継続条件式; 増減式){ 繰り返す処理の内容 }
let fruits = ['りんご', 'みかん', 'いちご'];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for…of 文で取得
for( let 変数 of 配列名 ){ 繰り返す処理の内容 }
let fruits = ['りんご', 'みかん', 'いちご'];
for (let fruit of fruits) {
console.log(fruit);
}
//変数を配列にして、取得した配列部分をarray.entries()にするとindex(添字)が取得できる。
for (let [index, fruit] of fruits.entries()) {
console.log(fruit);
console.log(index);
}
Array.forEach 文
Array.forEach メソッドは配列の全要素に対して関数を実行することができます。
const fruits = ['りんご', 'みかん', 'いちご'];
fruits.forEach((element, index, array) => {
console.log(element, index, array);
});
//りんご 0 ['りんご', 'みかん', 'いちご'], みかん 1 ['りんご', 'みかん', 'いちご'], いちご 2 ['りんご', 'みかん', 'いちご']
オブジェクト
{プロパティ名:プロパティ値,プロパティ名:プロパティ値,...}
※連想配列、ハッシュなどともいうが、区別するため JavaScript ではオブジェクトという。
let fruits = { apple: 'りんご', mikan: 'みかん', strawbery: 'いちご' };
//りんご
cosole.log(fruits.apple);
cosole.log(fruits['apple']);
//[ ]で取得する場合は、プロパティ名にクォテーション
JSON
オブジェクトの記法を利用したものが、JSON(JavaScript Object Notation)とよぶ。
//jsonの書き方 { "キー" : "値" }
{ "名前": "鈴木一郎" }
- キー値がダブルクォーテーションで囲われている必要がある。
- さらにデータ部が文字列の場合は文字列にもダブルクォーテーションが必要。
- 最後に;もつけない。
for…in 文
オブジェクトのプロパティを取得する場合は、for…in 文を利用する。
for(let 変数 in オブジェクト名){ 繰り返す処理の内容 }
let fruits = { apple: 'りんご', mikan: 'みかん', strawbery: 'いちご' };
for (let fruit in fruits) {
console.log(fruit);
}
多次元配列
配列内に配列、配列内にオブジェクトなどネスト(入れ子)になったデータ。ループで取得する場合は、同様に入れ子にする。
let fruitslocal = [
{ apple: '青森', mikan: '愛媛', strawberry: '三重', grape: '山梨' },
{ apple: '福岡', mikan: '静岡', strawberry: '愛知', grape: '群馬' },
{ apple: '高知', mikan: '宮崎', strawberry: '北海道', grape: '岩手' }
];
//県名を全部表示する場合
for (let i = 0; i < fruitslocal.length; i++) {
for (let fruit in fruitslocal[i]) {
console.log(fruitslocal[i][fruit]);
}
}
イベントの登録
target.addEventListener(type, listener [, useCapture]);
でイベントの登録をします。
<!-- クリックイベントの場合 -->
<div class="clickBtn">クリックする</div>
<script>
let Btn = document.querySelector('.clickBtn');
Btn.addEventListener('click', function () {
console.log('クリック');
});
</script>
要素の追加
後に追加
//appendChildするために、 新しい要素を作成する。
let newElm = document.createElement('p');
let outerElm = document.querySelector('div');
newElm.innerHTML = `コンテンツ`;
outerElm.appendChild(newElm);
前に追加
insertBefore(newNode, referenceNode);
<div id="parentElement">
<span id="childElement">foo bar</span>
</div>
<script>
// 挿入する新しいノードを作成する
let newNode = document.createElement('span');
newNode.innerHTML = 'hoge';
// 親ノードの参照を取得する
let parentDiv = document.querySellector('#parentElement');
// 開始: 既存の childElement (すべて正しく動作)
let sp2 = document.getElementById('childElement');
parentDiv.insertBefore(newNode, sp2);
</script>
Element.append()
Element.append() メソッドは、一連の Node または DOMString オブジェクトを Element のの最後の子の後に挿入します。
DOMString オブジェクトは等価な Text ノードとして挿入されます。
append(...nodesOrDOMStrings)
<div id="parentElement"></div>;
let parentDiv = document.querySelector('#parentElement');
let p = document.createElement('p');
parentDiv.append('Some text', p);
class の操作
Element.classList は読み取り専用のプロパティで、生きた DOMTokenList コレクションでその要素の class 属性を返します。
これを使用してクラスリストを操作することができます。
classList
const elementClasses = elementNodeReference.classList;
DOMTokenList 自体は読み取り専用ですが、 add(), remove(), replace(), toggle() の各メソッドを用いてオブジェクトを変更することはできます。
const div = document.createElement('div');
div.className = 'foo';
// classList API を用いてクラスを削除、追加
div.classList.remove('foo');
div.classList.add('anotherclass');
// <div class="anotherclass"></div>
console.log(div.outerHTML);
// visible が設定されていれば除去し、なければ追加
div.classList.toggle('visible');
// i が 10 未満であるかどうかの条件によって visible を追加または除去
div.classList.toggle('visible', i < 10);
// containsは、存在するかどうかを判定
console.log(div.classList.contains('foo'));
// 複数のクラスを追加または除去
div.classList.add('foo', 'bar', 'baz');
div.classList.remove('foo', 'bar', 'baz');
// スプレッド構文を使用したクラスの追加または除去
const cls = ['foo', 'bar'];
div.classList.add(...cls);
div.classList.remove(...cls);
// "foo" クラスを "bar" クラスで置き換え
div.classList.replace('foo', 'bar');
jQuery class の操作
jQuery の class の操作は、hasClass(), addClass(), removeClass(), toggleClass()でまかなえます。
// クラスを削除、追加
div.removeClass('foo');
div.addClass('anotherclass');
// visible が設定されていれば除去し、なければ追加
div.toggleClass('visible');
// 存在するかどうかを判定
console.log(div.hasClass('foo'));
// 複数のクラスを追加または除去
div.addClass('foo bar baz');
div.removeClass('foo bar baz');
// "foo" クラスを "bar" クラスで置き換え※toggleClassで同じ''内に両方書くと書き換えられる。
div.toggleClass('foo bar');
//でもこちらの方がわかりやすい※別のメソッドで置き換えちゃうけど、他のものも全部削除されます。
div.attr('class', 'bar');
jQuery-each メソッド
each() メソッドは2種類あり、jQuery オブジェクト(DOM の取得)に対して繰り返し処理を行う jQuery.each() メソッドと、引数で指定したオブジェクトに対して繰り返し処理を行う $.each() メソッドがあります。
DOM を操作する場合専用の構文
class やタグなど複数要素が取得できる場合、ループして値を取得操作する。
$(セレクタ).each( function( index, element ){
// DOMに関する処理
};
<div id="divArea">
<p>段落1の文章です</p>
<p>段落2の文章です</p>
</div>
<script>
$('#divArea > p').each(function (index, element) {
console.log(index, $(element).text()); //pタグで囲まれた文字列を出力
});
//0,段落1の文章です
//1,段落2の文章です
</script>
汎用的構文
配列やオブジェクト内の値を繰り返し取得することができる。
//配列の場合
$.each(対象配列, function (index, value) {
// 各データに関する処理
});
//オブジェクトの場合
$.each(対象オブジェクト, function (key, value) {
// 各データに関する処理
});
関数
関数宣言
関数定義 (関数宣言や関数定義文 とも呼ばれます) は function キーワードと、それに続く以下の内容で構成されます。
function square(number) {
return number * number;
}
関数式
関数宣言はすべて構文的な文でしたが、関数は関数式によって作成することもできます。
const square = function (number) {
return number * number;
};
let x = square(4);
console.log(x);
// x の値は 16 となる
Git 用語集
用語 | 意味 |
---|---|
リポジトリ (repository) |
履歴管理を行う場所。 |
リモートリポジトリ (remote repository) |
サーバーにあるリポジトリ。基本はベアリポジトリで運用される。 |
ローカルリポジトリ (local repository) |
自分のPCにあるリポジトリ。基本はノンベアリポジトリで運用される。 |
ベアリポジトリ (bare repository) |
ワークツリーを持たず、チェックアウト、マージができないリポジトリ。 |
ノンベアリポジトリ (non bare repository) |
ワークツリーを持ち、チェックアウト、マージができるリポジトリ。 |
ワークツリー (work tree) |
履歴管理を行いたいファイルがある場所。 |
インデックス (index) |
コミットしたいファイル又はファイルの一部を登録するところ。 |
ステージ (stage) |
ワークツリーからコミットしたいファイル又はファイルの一部をIndexに登録すること。 |
ハンク (hunk) |
変更した一範囲。 |
コミット (commit) |
インデックスに登録してある変更対象をローカルリポジトリに反映すること。 |
リセット (reset) |
コミット前の変更をローカルリポジトリの状態へ戻すこと。 また、特定のコミットまで状態を戻すこと。ただし、ローカルリポジトリに限られる。 |
ヘッド (head) |
作業対象となっているブランチ、コミット。 |
チェックアウト (checkout) |
ヘッドを切り替えること。 過去のコミットを対象にチェックアウトした場合、それをもとにコミットすることはできない。 |
プッシュ (push) |
ローカルリポジトリの変更をリモートリポジトリに反映させること。 |
プル (pull) |
リモートリポジトリの変更をローカルリポジトリに反映させること。フェッチ+マージ |
フェッチ (fetch) |
リモートリポジトリの変更をローカルリポジトリに反映させること。フェッチ+マージ |
マージ (merge) |
異なるブランチの変更を反映させること。お互いの変更履歴が残る。 |
リベース (rebase) |
異なるブランチの変更を反映させること。変更履歴が片方に集約される。 |
コンフリクト (conflict) |
マージ対象の2ファイルで同じ箇所が変更されており、自動でマージができないこと。 |
ブランチ (branch) |
履歴管理を枝分かれさせてたもの。ブランチを使うこちにより、複数の履歴を並列に管理できる。 |
フォーク (fork) |
リモートリポジトリをコピーしてリモートリポジトリを作成すること。 |
クローン (clone) |
リモートリポジトリをコピーしてローカルリポジトリを作成すること。 |
プルリクエスト (pull request) |
フォークしたリポジトリでの変更を、フォーク元のリポジトリへ反映するよう依頼すること。 |
.gitignore | 履歴管理の対象外とするファイルを登録するところ。対象範囲は各リポジトリ。 |
.gitignore (グローバル) | 履歴管理の対象外とするファイルを登録するところ。対象範囲は全リポジトリ。 |