注意点は参照型の場合はポインタが final になるだけ。インスタンスの中のデータは変更可能である。変更不可能にしたいなら、プリミティブ型を渡す様にしよう。 対象画面の登録処理を行うなどがあった場合 equals を使うときは左辺を固定文字にすること。 左辺が null だと NullPointerException になり得るけど、 右辺が null でも NullPointerException にはならない。 変数と関数の初期値設定 var で変数を宣言した場合、宣言した時点でのホスティングで let const では変数のメモリ生成自体はしているが 関数では宣言した時点でホイスティングでメモリに定義されるので、関数の上で呼び出してもエラーにならず関数の戻り値が出力される.。ただし、変数に関数を代入するような「関数式」ではホスティングの挙動が変数と同じになるため、関数式の前に関数の呼び出しを行っても undefinedは、「未だ定義されていない」という意味を持つ英単語。
1. メソッドのシグネチャの引数は、final にする(Java)
2. 排他エラーチェック方法例(Java)
3. DOMの要素にイベントを付与する (JavaScript)
// html
<div id = "example">
</div>
// JavaScript
const element = document.getElementById('example');
// 画面呼び出し時処理
function handleLoad() {
const element = document.getElementById('example');
element.addEventListener('click', () => {
console.log('clicked!');
});
element.addEventListener('click', regByClick);
}
function regByClick(e) {
console.log('clicked!');
}
// jQuery
$(function () {
$('#example').on('click', function() {
console.log('clicked!');
console.log(e.value);
});
$('#example').on('click', regByClick)
function regByClick(e) {
console.log('clicked!');
console.log(e.value);
}
4. 特定のイベント発生後に、さらにイベントを発生させる (JavaScript)
addEventPasteAndChange(document.getElementById('example'));
/**
* 特定の要素に paste イベントを付与し 次にchange イベントを呼出す
*/
function addEventPasteAndChange(element) {
element.addEventListener('paste', (event) => {
event.preventDefault();
// DOMの要素の maxlength 属性の値を取得
const textMaxLength = element.getAttribute('maxlength')
// クリップボードのテキストを貼り付ける前に取得、置換処理してから貼り付ける
let paste = "";
if (event.clipboardData) {
paste = event.clipboardData.getData('text');
// 第一引数:置き換えたい文字 第二引数:置き換える文字
paste = paste.replaceAll('.', '');
}
// textMaxLength桁以降の値は除去
if (paste.length > textMaxLength) {
paste = paste.substring(0, fixedLength);
}
element.value = paste;
// paste イベント終了後に change イベントを発火させる
element.trigger("change");
});
// paste イベント後に change イベントが発火できない
// イベントを初期化し、引数で渡されたイベントを発火させる
element.trigger function(eStr) {
let e = document.createEvent("HTML Events");
e.initEvent(eStr, false, false);
this.dispatchEvent(e);
}
}
5. 入力欄に最大文字数を入力後に次の項目にフォーカスが自動で移動する (JavaScript)
/**
* 入力イベント:入力値が最大桁数の場合、次項目にフォーカス自動移動
* 現在選択中の input 項目が最後以外の場合、 次の input 項目を選択
* 現在選択中の input 項目が最後の場合、 選択解除
*/
function nextFeildAutoMove_MaxInput() {
const inputFiled = this;
const inputValueLngth = inputFiled.value.length;
const maxlength = inputFiled.maxlength;
if (inputValueLngth >= maxlength) {
// 画面の全てのインプットのタグの数
let inputElementsNum = document.getElementsByTagName('input').length;
// 現在のインプットタグのインデックス
let currentIndex = Array.prototype.indexOf.call(document.getElementsByTagName('input'), this);
let nextIndex = currentIndex + 1;
if (nextIndex < inputElementsNum) {
document.getElementsByTagName('input')[nextIndex].focus();
} else {
document.getElementsByTagName('input')[currentIndex].blur();
}
}
}
// JQuery
function next FeildAutoMove_MaxInput() {
const inputFiled = $(this)[0];
const inputValueLngth = inputFiled.value.length;
const maxlength = inputFiled.maxlength;
if(inputValueLngth >= maxLength) {
// 画面の全てのインプットのタグの数
let inputElementsNum $('input').length;
// 現在のインプットタグのインデックス
let current Index $('input').index(this);
let nextIndex = current Index + 1;
if (nextIndex < inputElementsNum) {
$('input')[next Index].focus();
} else {
$('input')[current Index].blur();
}
}
}
6. List で受け取った 集合オブジェクトを stream API を使用してフィルタリングを行い、最初の要素を取得(Java)
private static final String BUYABLE_USER = "OK";
private static final String BUY_DISABLED_USER = "NG";
SelectUserDao dao = new SelectDao();
// 検索条件に一致するユーザを取得
List<searchResultEntity> entityList = dao.selectByAll(userId);
// 購入可能ユーザと購入不可能ユーザを判別して抽出
// レコードがない場合は null かもしれないので Optional で受け取る
Optional<searchResultEntity> buyableUserEntity = dtoList.stream().filter(e -> BUYABLE_USER.equals(e.getUserStatus())).findFirst();
Optional<searchResultEntity> buyDisabledUserEntity = dtoList.stream().filter(e -> BUY_DISABLED_USER.equals(e.getUserStatus())).findFirst();
7. equals() の注意点(Java)
8. Fromタグでマルチなコンテンツ(画像・動画・リクエストパラメータ)をリクエストする時の注意点(HTML)
enctype="multipart/form-data"
これつけないと送れない。9. ホイスティング(JavaScript)
undefined
で初期化が ジャバスクリプトエンジンで設定されるundefined
の初期化がジャバスクリプトエンジンで行われないのでUncaught
初期化されてへんみたいなエラーが出る。Uncaught
が発生する。10. undefined と nullの違い(JavaScript)
JavaScriptにおいては、変数を宣言した後に値を設定されていない場合にundefinedが返される。
大きな違いは、何もない状態であることが意図的であるかどうか。