Javascript変数.

4999 ワード

変数命名規則

  • 文字、-、数字(ハングル、特殊文字、日本語などは書かないでください)
    1_1. 数字は1位にはならない.
  • アルパカマーク法(一番前の小文字)、pascalマーク法(一番前の大文字)
  •     ex) let myVeryLongLongName; camel 표기법
        ex) let MyVeryLongLongName; pascal 표기법
  • の大文字と小文字を区別します.
  • var.

      console.log(varName); // undefined. 메모리는 잡혔지만 초기화가 안되서 undefined임.
      // 호이스팅. 자바스크립트 엔진 실행순서 1. 컴파일 되면서 변수 선언이 이루어짐(메모리할당) 2. 런타임에서 사용이 됨
      var varName = "test"; // 가장 오래된 버전에서 사용하는 변수 타입
      console.log(varName); 
    
      if(true)
      {
          // 다른 영역
          var varName = "kimjinkyung"; // 한번 더 선언 및 초기화 가능.
      }
      console.log(varName); // 위의 if문에 새롭게 선언 및 초기화한 내용이 출력된다. 이게 var의 문제점.
    
      // 전역변수가 많다는 건, 선언한 시점에서 프로젝트가 종료될떄까지 메모리를 잡아먹기에 좋은게 아니다

    let.

      let letName = "kjk";
      console.log(letName); // kjk
      if(true) {
          let letName = "jinkyung"; // 지역변수는 블록 스코프를 벗어나면 메모리가 해제된다.
          console.log(letName) // jinkyung
      }
      let letName = "test"; // 재선언 불가능. Identifier 'letName' has already been declared
      console.log(letName); // kjk

    const.

    // const constName; // Missing initializer in const declaration. 선언하면서 동시에 초기화를 해야만 함. 값이 수정될 일이 없는 변수
    const constName = "kjk"
    // ex) 게임에서 1스테이지 맵의 크기
    // ex) 1스테이지 보스 이름
    // ex) document를 변수로 선언할 때
    constName = "test" // const 변수는 재할당이 불가하다.  Assignment to constant variable.
    console.log(constName);
    
    // 빨간줄이 뜨는 건 컴파일 에러. 컴파일은 사람 언어(자바스크립트) -> 컴퓨터 언어로 번역하는 것.
    // 디버그창에 뜨는 건 런타임 에러. 번역한 컴퓨터 언어로 코드를 한줄한줄 실행하는 것.