Private Chamber - JavaScript
ノーコメント.
性質
・大文字と小文字を区別する.
・文末にはセミコロンを使う(単独の文の場合は不要).
・変数の型は自動で変わる.
・足し算でのみストリング型と数値型の結合を担う. 引き算などは文字列が数であれば計算されてしまう.
・バッククォートで囲んだ文字列に「${変数}」と書いて足し算を用いてつなぐ必要がなくなる.
データ型
型 | 備考 |
Boolean | ブーリアン型, true または false. |
null | |
undefined | |
Number | 数値, 20 や 3.1415 など |
BigInt | 長整数, 9007199254740992n など |
String | ストリング型, "Hello" など |
Symbol | |
Object | オブジェクト. |
具体的な構文
コメントアウト
//コメント
/*
複数行コメント
*/
変数定義
varは基本の変数、letは宣言した場所のスコープブロック内でのみ定義され、constは定数で後から中身を変更できない。
「var a;」といったように、初期値なしで定義した場合、中身の値は「undefined」になる。
var a = 1;
let b = 1;
const c = 1;
関数
下の「関数式」では「関数の巻き上げ」に対応しておらず、その文より下でないとその関数が使えない。
function f(x) {
//処理;
//return 戻り値;
};
var g = function() {
//処理;
};
アロー関数
//従来の関数
function f(x,y) {
return x + y;
};
//アロー関数
(x,y) => x + y;
条件分岐
・falseと評価される値
「false」「undefied」「null」「0」「NaN」「""」
if(条件){
//処理;
} else {
//処理;
}
if(条件){
//処理;
} else if(条件){
//処理;
} else {
//処理;
}
switch文
switch(a){
case "apple":
console.log("red");
break;
case "lemmon":
console.log("yellow");
break;
default:
console.log(`I don't know about the color of the ${a}...`);
}
繰り返し処理
while(条件){
//処理;
}
または
for(let k = 0; k < 5; k++){
//処理;
}
条件がfalseになるまで繰り返す場合:
do{
//処理;
}while(条件);
クラス定義
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
}
new演算子
const square = new Rectangle(3,4);
console.log(square.width); // 4
ユーティリティ
配列リテラル
下の場合、二つ目の値はundefinedになる。
let a = [ "apple", "banana", "lemmon" ];
let b = [ "dog", , "cat" ];
console.log(a[0]); //apple
数値リテラル
Number型、BigInt型において、「0o~」で8進数、「0x~」で16進数、「0b~」で2進数。
浮動小数リテラル
整数部分がゼロの場合は省略できる。「e」または「E」で指数表現ができる。
3.1415926
-.123456789
-3.1E+12
.1e-23
オブジェクトリテラル
var food = { type: "fruits", color: "red", taste: "sweet" };
console.log(food.type); //fruits
文字列のライフハック
文字列Aを文字B(ストリング)で分ける(Bは消える)(返り値はアレイ)
let x = A.split(B);
文字列Aが数値でないかどうか
let x = isNaN(A);
文字列Aに含まれる文字列Bを文字列Cに置き換える
let x = A.replace(B, C);
文字列Aを数値型に変える
let x = Number(A);
アレイのライフハック
アレイAの長さ
let x = A.length;
アレイAの末尾に要素Bを追加
A.push(B); //メソッドなのでこの一文のみ
アレイAの末尾の要素を削除
A.pop(); //メソッドなのでこの一文のみ
アレイAの先頭の要素を削除
A.shift(); //メソッドなのでこの一文のみ
アレイAをA[B]からA[C]までのアレイにする
let x = A.slice(B,C);
数値のライフハック
数値AをB桁の数にする
let x = A.toFixed(B);
特殊文字のエスケープ
文字 | 意味 |
\0 | ヌル文字 |
\b | バックスペース |
\f | 改ページ |
\n | 改行 |
\r | 復帰 |
\t | タブ |
\v | 垂直タブ |
\' | アポストロフィ |
\" | ダブルクォーテーション |
\\ | バックスラッシュ |
\uXXXX | Unicodeエスケープシーケンス |