変数を宣言する場合 let、const、var を使用します。指定をせずに代入するとグローバル変数として定義されます。
命名ルールについて、使用できる文字は Unicode文字、アンダーバー(_)、ドル($)、大文字と小文字は区別されます。
代入された値によりデータ型が決まり型宣言はできません。
初期値を指定しない場合 undefined という値で初期化されます。
let 変数名; //再定義不可。ブロックスコープ(ループ内の定義ではエラーにならない)
const 変数名=初期値; //値の変更不可。初期値が必須。ブロックスコープ。
(値の再代入はできないがオブジェクトを定義した場合の変更は可能)
var 変数名; //再定義可能な変数。関数スコープ
let 変数名1, 変数2, ...; //複数同時に定義する場合
- 数値
数値はすべて 64 ビットの浮動小数点数として扱われます。
整数 10進数以外に16進数(0xAB)、8進数(0o67)、2進数(0b0110)が使用できます。
浮動小数点 15.742 のようにそのまま記述する方法と、 7.5e-3 のような指数形式でも記述することができます。
長整数 数値を記述したあと最後に n を記述します。最大値は 9007199254740991
- 文字列
'abc'や"abc"のようにシングルクオート「'」または、ダブルクオート「"」で囲って指定する。
`(バッククオート)テンプレートリテラルを指定でき埋め込み式による補間、改行、タグ付きテンプレートと呼ばれる特殊な構文が使用できます。
var str = "def";
console.log(`abc${str + "ghi"}`); //"abcdefghi"
エスケープシーケンス \' \" \t \\ \n \r \0 \fなどの特殊記号を表します。
配列
定義時の要素数を超えた場合は自動でサイズが大きくなります。
ただし、TypedArray(Uint8Array、Float32Arrayなど)で型を指定する場合は要素数は固定になります。
var ary = new Array("a","b","c");
var nameAry = ["足立","安藤","内木"];
var ary = []; //空の配列を作る。var ary = new Array();も同じ
var ary = new Array(16); //16個の要素で配列作成
//バイト指定で配列作成。.push.popなどの一部メソッドは使えない
var bytes = new Uint8Array([1, 2, 3]);
//上記で要素を追加する場合は新たに配列を作る必要がある
var newBytes = new Uint8Array([...bytes, 4]);
ary.length = 0; //要素を空にする
ary[0] = 1;
ary[1] = 2;
var str = "abc"; //str[1]は"b"
var strAry = str.split(","); //分割して配列に代入
多次元配列は、以下のように作ります。
var ary = new Array(2);
var ary[0] = new Array(3); //ary[0][0]、ary[0][1]、ary[0][2]を作成
var ary = [["a","b","c"], ["d","e","f"]]; //ary[1][2]は"f"
ary.length; 配列の要素の個数
ary.push(値); 値の要素を末尾に追加
ary.push(...ary); スプレッド演算子で配列を末尾に追加
ary.unshift(値); 値を先頭に挿入
ary.pop(); 末尾の要素を削除
ary.shift(); 先頭の要素を削除
ary = ary1.concat(ary2); ary1にary2を連結した配列を返す
ary.fill(値); 指定の値で埋める
ary.sort(); 小さい順に並び替える
ary.reverse(); 逆向きに並び替える
str = ary.toString(); 配列を文字列にする
ary = str.split(","); 文字列を指定した区切り文字で分割して配列に変換
str = ary.join("区切り文字"); 配列を区切り文字で連結して返す
ary.includes(値); 配列に値が含まれているかどうかをbool値で返す
ary.indexOf(値, 開始位置); 合致する最初の要素キーを取得する。indexは開始位置で省略可
ary.set(開始位置, ary1); 開始位置からary1の要素をすべて代入する。開始位置は省略可
resultAry = ary.slice(開始位置, 要素数); 指定範囲の要素を取り出す
resultAry = ary.splice(開始位置, 要素数, 値, 値…); 指定範囲の要素を値で置き換える。
要素数を0にすると値を挿入する。値を指定しないと要素を削除する
Array.isArray(ary); 配列であるかどうかをbool値で返す
特別な値
boolean真偽値 true、false
値なし null
未定義 undefined
数値でない NaN
無限 Infinity
演算の優先順(高い順) ()、++ --、**、* / %、+ -、<< >>、&、^、|
・数学関数
Math.ceil(n) 小数点以下を繰り上げ
Math.floor(n) 小数点以下を繰り下げ
Math.round(n) 小数点以下を四捨五入
Math.abs(n) 絶対値
Math.max(n,m) nとmの大きい方
Math.min(n,m) nとmの小さい方
Math.pow(n,m) nのm乗
Math.sqrt(n) nの平方根
Math.random() ランダム
"abc" + "def" 文字列を連結します。
"2" - 1 文字列にて引き算をすると数値として計算します。
.length 文字列の長さ
.charAt(n) n文字目の文字
.slice(n) n文字目以降を切り出し
.replace(対象文字列, 置換文字列) 最初に見つかった文字列のみ(正規表現で全て置換も可能)
.replaceAll(対象文字列, 置換文字列) 全ての対象文字列を置換(正規表現はgオプション必須)
.substring(from,to) from~to-1文字目の文字
.substring(from) from~残り全ての文字
.substr(from,len) from~len文字分の文字
.substr(from) from~残り全ての文字
.indexOf(key,from) fromを始点に 最初のkey位置
.indexOf(key) 最初のkey位置
.padStart(n, '0') 文字列の先頭を0で埋めてn文字にする。文字を省略するとスペースで埋める。
.padEnd(n, '0') 文字列の末尾を0で埋めてn文字にする。文字を省略するとスペースで埋める。
.toFixed(n) 指定した小数点以下の桁数に丸める
var num = Number("123"); //文字を数値に変換
var str = String(123); //数値を文字に変換
var str = String(ary); //配列をカンマ区切りの文字列に変換
予期しない異常によりエラー(例外)が発生した際にプログラムのストップを回避します。
・Errorオブジェクト
エラー情報を出力する際に使われるオブジェクトです。
Error 一般的なエラー全般
RangeError 数値が有効範囲外の場合のエラー
ReferenceError 宣言されていない変数や不正な参照を行った場合のエラー
TypeError 想定されたデータ型でない場合のエラー
try {
//例外発生が想定される処理
throw new Error("強制的に例外を発生");
} catch(e) { //eはエラーの詳細を格納したオブジェクト
//例外発生時の処理
console.error(e); //Errorオブジェクト
console.error(e,name); //エラー種類 "Error"
console.error(e,massage); //エラーメッセージ "強制的に例外を発生"
console.error(e.stack); //例外が発生した関数と行番号などの詳細
if (e instanceof RangeError) {
//RangeErrorが発生した場合の処理
} else {
throw e; //再度例外を発生させ停止させる
}
} finally {
//例外有無に関係なく最後に実行される処理
}
HTMLの技術を使って、Windows向けアプリケーションを作る方法です。
HTMLファイルの拡張子を .hta にすることでアプリケーションとして動作します。
ブラウザの制限を受けずにローカルのファイル操作やシステム情報の取得が可能ですが、
セキュリティ上のリスクがあるため現在は推奨されていません。
HTAファイルは、”c:\Windows\system32\mshta.exe”に関連付けられていないと起動できません。
※Win10以降のPCは関連付けされていないため、ショートカットを作るなどします。
ローカルファイルへのアクセスなどが行えるようになります。
・HTA:APPLICATIONタグ
このタグを使えば、アプリケーションらしい外観を整えることができます。
以下、設定できる値の中で、よく使うものを掲載します。
| 属性 | 意味 |
| icon | アイコンファイルのパス ~.ico |
| id | HTAオブジェクトのID thisHTAなどの文字列 |
| maximizeButton | 最大化ボタンの表示 yes、no(標準はyes) |
| minimizeButton | 最小化ボタンの表示 yes、no(標準はyes) |
| scroll | スクロールバーの表示 yes、no、auto(標準はyes) |
| contextMenu | 右クリックメニューの表示 yes、no(標準はyes) |
| showInTaskBar | タスクバーへの表示 yes、no(標準はyes) |
| navigable | リンクをウィンドウに読みこむか yes、no(標準はnoで別ウィンドウ) |
| singleInstance | 複数起動を禁止する yes、no(標準はno)yesの時はapplicationNameが必要 |
| applicationName | アプリケーション名 uniqueNameなどの文字列 |