ここでは、JSの変数についてまとめていきます。
変数const let varの違い
タイプ | 再宣言 | 再代入 | スコープ | 初期化 |
---|---|---|---|---|
let | ✖︎ | ◯ | ブロック | ✖︎ |
const | ✖︎ | ✖︎ | ブロック | ✖︎ |
var | ◯ | ◯ | 関数 | undefined |
再代入
let a = 0;
a = 0; //ok
const b = 0;
b = 0; //error
ブロック
{
let a = 0; //ブロックの中でしか定義されない
var b = 0; // var の時はグローバルとして定義されてしまう。
}
console.log(a) //error
console.log(b) //使えてしまう。
データ型
型 | 英名 | 例 |
---|---|---|
真偽値 | Boolean | true/false |
数値 | number | 12 |
文字列 | string | "Hello" |
undefined | undefined | undefined |
null | null | null |
シンボル | symbol | 一意の値 |
BigInt | BigInt | 12n |
オブジェクト | object | {a:'value'} |
暗黙的な型変換
JSでは、値は動的な型付けとなっているため、使用される状況に応じて値の型が変わる
let a = 0;
printTypeAndValue(a);
let b = '1'+ a;
printTypeAndValue(b) // 10 string
let c = 15 - b;
printTypeAndValue(c);// 5 number
let d = c - null;
printTypeAndValue(d) // 15 number
let e = d - true;
printTypeAndValue(e) // 4 number
厳格な等価性と抽象的な等価性(==)と(===)
==は数値のみ ===は型も一緒に判断する
function printEquality(a,b){
console.log(a === b);
console.log(a == b); //console.log(a === Number(b))
}
let a = '1';
let b = 1;
let c = true; // 1となる
printEquality(b,c)
falthyとtruthy 実行結果がtrueになるものとfalseになるもの
// falsyな値
//Booleanで真偽値に変換した場合にfalseになる値のこと
let a = 0;//"","0",null,0n,undefined,NaN
console.log(Boolean(a)); //false
if(a){ //値が入っているかをtrueの時に実行で確かめられる。 falseの時は!a 0の時は別
console.log('hello');
}else{
console.log('bye');
}