js - part1. データ型、データ型、let vs var、昇格
4081 ワード
JS-データ型、データ型、let vs var、昇格 let(ES 6に追加)
-varを使う習慣を捨てるべきだ.
-letの場合 吊り下げとは何ですか?
宣言がどこにあるかにかかわらず、宣言を一番上にしなければならない.
Block scope const
不変の値
変更しないデータ型を使用するには、値を指定することをお勧めします. variable types
number, string, boolean boolean
-false = 0, null, undefined, NaN, ''
-true=その他
ex) const a = true;
const b = 3 < 1;//false null:故意にNULL
let nothing = null;
console.log(
//value: null, type: object undefined:NULLか値が含まれているか分からない状態
let x;
console.log(
//value: undefined, type: undefined シンボル:一意の識別子が必要な場合に使用します.
同時に多発イベントが発生した場合、優先順位を付けたい場合、固有の識別子が必要な場合に使用します.
stringも使用される場合があり、同じstringであれば同じ識別子とみなされるという問題があります.
ただし、symbolでは、同じ構成部品を作成しても区別できます.
ex) const symbol1 = Symbol('id')
const symbol2 = Symbol('id')
console.log(symbol1 === symbol2);
//false
同じエレメントで同じ識別子を作成したい場合は?
ex) const symbolA = Symbol.for('id')
const symbolB = Symbol.for('id')
console.log(symbolA === symbolB);
//true
またsymbolは出力中にエラーが発生するので後で出力はdescriptionを加えて変換してのみ出力されます.
console.log(
//value: id, type: symbol
-varを使う習慣を捨てるべきだ.
-letの場合
<script>
console.log(age);
age = 4;
</script>
--> - let의 경우 :: 선언되지 않은 변수기 때문에 에러가 난다.(정상)
--> - var의 경우 :: 선언되지 않았지만 undefined라고 출력.(var hoisting)
宣言がどこにあるかにかかわらず、宣言を一番上にしなければならない.
<script>
{
age = 4;
let age;
}
</script>
--> 변수 사용 범위가 블럭 안으로 제한
しかしvarではblockscopeは通用しません.<script>
{
age = 4;
var age;
}
console.log(age);
</script>
--> var의 경우 어디서나 4 출력 가능..
規模のあるプロジェクトではvarを使用するとカオスが発生します.変数が重なる...リスク負担.不変の値
変更しないデータ型を使用するには、値を指定することをお勧めします.
number, string, boolean
-false = 0, null, undefined, NaN, ''
-true=その他
ex) const a = true;
const b = 3 < 1;//false
let nothing = null;
console.log(
value: ${nothing}, type: ${typeof nothing}
)//value: null, type: object
let x;
console.log(
value: ${x}, type: ${typeof x}
)//value: undefined, type: undefined
同時に多発イベントが発生した場合、優先順位を付けたい場合、固有の識別子が必要な場合に使用します.
stringも使用される場合があり、同じstringであれば同じ識別子とみなされるという問題があります.
ただし、symbolでは、同じ構成部品を作成しても区別できます.
ex) const symbol1 = Symbol('id')
const symbol2 = Symbol('id')
console.log(symbol1 === symbol2);
//false
同じエレメントで同じ識別子を作成したい場合は?
ex) const symbolA = Symbol.for('id')
const symbolB = Symbol.for('id')
console.log(symbolA === symbolB);
//true
またsymbolは出力中にエラーが発生するので後で出力はdescriptionを加えて変換してのみ出力されます.
console.log(
value: ${symbol1.description}, type: ${typeof symbol1.description}
);//value: id, type: symbol
Reference
この問題について(js - part1. データ型、データ型、let vs var、昇格), 我々は、より多くの情報をここで見つけました https://velog.io/@yooncode2024/jsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol