クリーンコード


変数の処理


コードを簡潔に書くことが重要です.
以前のコードの作成方法を振り返ってみましょう.
この章では、変数の処理方法について説明します.

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の使用👍 !!!!!!!!!!!!!!!!!