Javascript 変数について

ここでは、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) //使えてしまう。

データ型

 

英名
真偽値Booleantrue/false
数値number12
文字列string"Hello"
undefinedundefinedundefined
nullnullnull
シンボルsymbol一意の値
BigIntBigInt12n
オブジェクト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');
}

 

 

投稿者 @rongai