クリーンコード
10591 ワード
変数の処理
コードを簡潔に書くことが重要です.
以前のコードの作成方法を振り返ってみましょう.
この章では、変数の処理方法について説明します.
1.varは不要
ES 2015の前にvarを使用して変数を指定します.
ES 2015以降に発売されたlet&constはjavascriptの発展に伴って生まれた良い例である.
varは関数単位のスキャンです
letおよびconstは、コードをブロック単位で非常に安全にスキャンすることができる.
var例)
console.log(name) // undefined 오류 발생하지 않음
var name = "이름";
var name = "이름2"; // 오류 발생하지 않음
var name = "이름3"; // 오류 발생하지 않음
var name = "이름3"; // 오류 발생하지 않음
console.log(name) //이름3
💡 varを使用すると、再割り当てが容易になり、再割り当てを超えて再宣言(繰り返し宣言)することもできます.😡 しかし,これらのコードが1000行以上ある場合,オーバーラップとオーバーラップの場合,どこで重複するコードを探すかは非常に困難である.
letとconstの例)
let name = "이름3";
let name = "이름3"; // ^SyntaxError : Identifier 'name' has already been declared
let name = "이름3";
console.log(name)
💡 letとconstを使用して宣言した変数を再宣言することはできません.変数を安全に使用できます.
例)
let name; // 먼저 선언
name = "이름";
console.log(name) // 이름
name = "이름2";
name = "이름3";
console.log(name) //이름3
const例)
const name; // Uncaught SyntaxError: Missing initializer in const declaration
name = "이름";
console.log(name)
name = "이름2";
name = "이름3";
console.log(name)
💡 letは先に宣言してから割り当てることができ、エラーは発生せず、再割り当てることができます.constは宣言と同時に割り当てる必要があり、再割り当てはできません.
(再割り当てされない変数を
const
と宣言!)2. functional Scope vs block Scope
varは関数単位のスキャンです
letとconstはブロック単位でスキャンする
var global = '전역';
if(global === '전역'){
var global = '지역'
console.log(global); // 지역
}
console.log(global); // 지역
どうして?if文ブロック内でglobal変数を再宣言し,外のglobalに汚染された.(=グローバルスペースに影響します.)💡 理由:varは関数単位scopeです.if文は関数ではないので、ブロック単位scopeに変換しない限り、不安な要素を持たなければなりません.
let global = '전역';
if(global === '전역'){
let global = '지역'
console.log(global); // 지역
}
console.log(global); // 전역
ブロック単位に合った適切なキャラクターを充実させています!!!💡 結論:letとconstはvarよりも安全で、人々が想像していたようにコードを記述し、コードを記述した結果を予測することができる.
3.letよりconstを使う!
constは再割り当てのみ可能です。(オブジェクトでもベースタイプでも)
オブジェクト
const person = {
name : 'jang',
age : '30'
}
// const로 선언해도 내부 프로퍼티를 변경하는 것은 가능하다!
person.name = 'lee'
person.age = '22'
console.log(person) // {name : 'lee', age : '22'}
// error 재할당은 불가능하다.
const person = {
name : 'jang2',
age : '31'
}
整列const personㄴ = [{
name : 'jang2',
age : '31'
}]
person.push({
name : 'lee',
age : '22',
})
console.log(person); // [{name : 'jang2', age : '31'}, {name : 'lee', age : '22'}]
💡 結論:constは元のオブジェクトや配列などの参照オブジェクトを操作する際に何の問題もありません!再配分がなかったら!!!constの使用👍 !!!!!!!!!!!!!!!!!
Reference
この問題について(クリーンコード), 我々は、より多くの情報をここで見つけました https://velog.io/@kokyusik91/클린코드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol