LHJ

I'm a FE developer.

2-7. 기본 문법 / 상수, 진수

14 Nov 2020 » js_beginner

12. 상수, 진수

상수

  • 변경할 수 없는 값
  • 상수 변수

    • 상수가 설정된 변수
    • JS는 변수의 값을 변경할 수 있으므로 (ES5 기준)
    • 상수 변수는 선언적 의미 (ES5 기준)

  • 상수 변수 표기 방법 (관례)

    • 코딩 관례로 영문 대문자 사용
    • var ONE = 1;
    • 상수로 사용한다는 시맨틱 선언

        var ONE = 123;
        ONE = 456;
        console.log(ONE);                   // 456
        console.log(Number.MAX_VALUE);      // 1.7976931348623157e+308
      
      1. ONE 변수를 대문자로 선언한 것은 상수라는 것을 나타내기 위한 것
      2. ES5 기준으론 상수라는 뜻으로 선언한 변수값을 변경할 수 있습니다.
        하지만 대문자로 쓰여져있으면 변경하지 말라는.. 관습적인 것입니다.
      3. Number.MAX_VALUE는 최대값입니다.
        JS 상수이며 값을 바꾸면 에러가 납니다.

  • JS가 제공하는 상숫값은 변경 불가

    • MAX_VALUE, MIN_VALUE
    • MIN_VALUE 라는 상수도 있습니다.

진수

  • 10진수 : 123
  • 16진수

    • 0xFF : 255
    • 1번째에 숫자 0 작성
    • 2번째에 영문자 x 작성
    • 3번째 이후 : 0 ~ f 작성
      대소문자 구분하지 않음

        console.log(0XF);     // 15
        console.log(0xff);    // 255    
        console.log(0xfff);   // 4095
      
      1. OXF는 15
        OX는 16진수를 나타내므로 값이 아니며
        A: 10, B: 11, C: 12, D: 13, E: 14, F: 15
      2. 0xff는 (16 * 15 + 15) 방법으로 계산
      3. 0xfff는 (16 * 16 * 15) + (16 * 15) + 15로 계산

  • 8진수

    • ES3에서 폐지, ES6 재정의
    • 8진수가 ES3에서 폐지된 이유.
      16진수의 첫번째 자리는 숫자 0입니다. 그런데 8진수는 영문 o였습니다.
      헷갈리기 때문에 폐지됐었습니다.
      그리고 ES6에서 다시 정의했습니다.
      첫번째 자리를 숫자 0을 쓰고 두번째 자리에 영문 o를 씁니다.
      그리고 세번째 자리에 0~7 값을 정의할 수 있습니다.

  • 2진수 : ES6에서 특별한 방법 제공

    2진수는 0 또는 1을 가진 비트입니다.
    이 비트를 조합해서 값을 표현합니다.
    ES5에선 2진수를 활용하는 경우가 거의 없습니다. 쓰더라도 가독성 이유로 비추입니다.

    하지만 ES6에선 써야될 경우가 있습니다.
    ES6에선 2진수 전용 특별한 방법을 제공하고 있습니다.
    그것은 머신러닝 딥러닝에서 사용하는데요, 머신러닝 딥러닝에서 일반적인 CPO를 사용하기보단 GPU를 사용합니다.
    CPO 보다 GPU가 처리속도가 더 빠르기 때문입니다.

    이는 WebGL에서 제공을 하는데, 그때는 2진수를 사용합니다.
    머신러닝, 딥러닝과 같이 연산을 많이하면서 빠르게 처리해야될 때는 2진수를 사용해야됩니다.
    이는 ES6 과정에서 다루도록 하겠습니다.