2-4 변수와 상수

bi_sz·2020년 4월 16일
1

JavaScript

목록 보기
7/22
post-custom-banner

1. 변수

  • 변수 ( variable ) 는 데이터를 저장할 때 쓰이는 “ 이름이 붙은 저장소 " 이다.
  • 자바스크립트에서는 let 키워드를 사용해 변수를 생성한다.
let message;

"message" 라는 이름을 가진 변수를 생성(선언)한다.

let message;
message = 'Hello';

할당 연산자 = 를 사용해 변수 안에 데이터를 저장한다.

let message;
message = 'Hello!';
alert(message); // 변수에 저장된 값을 보준다.

문자열이 변수와 연결된 메모리 영역에 저장되었기 때문에,
변수명을 이용해 문자열에 접근할 수 있다.

let message = 'Hello!';
alert(message);

변수 선언과 값 할당을 한 줄에 작성할 수도 있다.

let user = 'John', age = 25, message = 'Hello';

한 줄에 여러 변수를 선언하는 것도 가능하다.
이렇게 작성하면 코드가 좀 더 짧아 보이긴 하지만
가독성을 위해 한 줄에는 하나의 변수를 작성하는것이 좋다.

let message;
message = 'Hello!';
message = 'World!'; // 값 변경
alert(message);

변수에는 어떤 값이든지 넣을 수 있으며, 원하는 만큼 값을 변경할 수도 있다.
값이 변경되면, 이전 데이터는 변수에서 제거된다.

let Hello = 'Hello world!';
let message;
message = Hello;
alert(Hello); // Hello world!
alert(message); // Hello world!

변수 두 개를 선언하고, 한 변수의 데이터를 다른 변수에 복사할 수도 있다.


함수형 언어

함수형(functional) 프로그래밍 언어는 변숫값 변경을 금지한다.
스칼라(Scala)와 얼랭(Erlang)은 대표적인 함수형 언어이다.

변수에 값이 일단 저장되면, 그 값을 영원히 유지한다.
다른 값을 저장하고 싶다면 새로운 변수를 만들어야만 하며, 전 변수를 재사용할 수 없다.

함수형 언어는 중대한 개발에 상당히 적합한 언어이며,
이런 제약이 장점으로 작용하는 병렬 계산 ( parallel computation ) 등 이 있다.


2. var

만들어진 지 오래된 스크립트에서 let 대신 var라는 키워드를 발견하는 경우가 있다.

var message = 'Hello';

var는 let과 거의 동일하게 동작하며, var도 let처럼 변수를 선언하는 데 쓰인다.


3. 변수 명명 규칙

자바스크립트에선 변수 명명 시 두 가지 제약 사항이 있다.

  • 변수명에는 오직 문자와 숫자, 그리고 기호 $와 _만 들어갈 수 있다.
  • 첫 글자는 숫자가 될 수 없다.

여러 단어를 조합하여 변수명을 만들 땐 카멜 표기법(camelCase)이 흔히 사용된다.

카멜 표기법은 단어를 차례대로 나열하면서
첫 단어를 제외한 각 단어의 첫 글자를 대문자로 작성한다.
Ex) myVeryLongName

달러 기호 '$' 와 밑줄 '_' 를 변수명에 사용할 수 있다.


대소문자 구별

abc와 ABC은 서로 다른 변수이다.


예약어 (reserved name)

목록에 있는 단어는 자바스크립트 내부에서 이미 사용 중이기 때문에
변수명으로 사용할 수 없다.
Ex) let, class, return, function


use strict 없이 할당하기

변수는 대개 정의되어 있어야 사용할 수 있다.
예전에는 let 없이도 단순하게 값을 할당해 변수를 생성하는 것이 가능했다.

use strict를 쓰지 않으면 과거 스크립트와의 호환성을 유지할 수 있기 때문에 여전히 이 방식을 사용할 수 있다.

하지만 정의 하지 않고 변수를 생성하는 것은 엄격 모드에서 에러를 발생시키기 때문에 사용하지 않는것이 좋다.

4. 상수

변화하지 않는 변수를 선언할 땐, let 대신 const를 사용한다.
const로 선언한 변수를 " 상수(constant)" 라고 부르며,
상수는 재할당할 수 없으므로 상수를 변경하려고 하면 에러가 발생한다.

변숫값이 절대 변경되지 않을 것이라 확신하면, 값이 변경되는 것을 방지하면서 다른 개발자들에게 이 변수는 상수라는 것을 알리기 위해 const를 사용해 변수를 선언하는것이 좋다.


대문자 상수

기억하기 힘든 값을 변수에 할당해 별칭으로 사용한다.
이런 상수는 대문자와 밑줄로 구성된 이름으로 명명한다.

Ex) 웹에서 사용하는 색상 표기법인 16진수 컬러 코드에 대한 상수

const COLOR_RED = "#F00";
const COLOR_GREEN = "#0F0";
const COLOR_BLUE = "#00F";
const COLOR_ORANGE = "#FF7F00";
-
let color = COLOR_ORANGE;
alert(color); // #FF7F00
  • COLOR_ORANGE는 "#FF7F00"보다 기억하기가 훨씬 쉽다.
  • COLOR_ORANGE를 사용하면 "#FF7F00"를 사용하는 것보다 오타를 낼 확률이 낮다.
  • COLOR_ORANGE가 #FF7F00보다 훨씬 유의미하므로, 코드 가독성이 증가한다.

"상수"는 변수의 값이 절대 변하지 않음을 의미한다.
그중에는 코드가 실행되기 전에 이미 그 값을 알고 있는 상수도 있고,
런타임 과정에서 계산되지만 최초 할당 이후 값이 변하지 않는 상수도 있다.

Ex) 웹페이지를 로드하는데 걸린 시간

const pageLoadTime =  ;

5. 바람직한 변수명

변수명은 간결하고, 명확해야 하며,
변수가 담고있는 것이 무엇인지 잘 설명할 수 있어야 한다.

실제 프로젝트에선 맨 처음부터 완전히 독립적인 코드를 작성하기보다
기존 코드의 틀을 변경하고 확장하는데 대부분의 시간을 보낸다.
작성했던 코드를 얼마 후에 다시 봤을 때,
정보에 알맞은 이름이 적혀있으면 정보를 더 쉽게 찾을 수 있다.

변수 명명 시 참고하기 좋은 규칙입니다.

  • userName 이나 shoppingCart처럼 사람이 읽을 수 있는 이름을 사용하기.
  • 무엇을 하고 있는지 명확히 알고 있지 않을 경우 외에는
    줄임말이나 a, b, c와 같은 짧은 이름은 피하기.
  • 최대한 서술적이고 간결하게 명명해 하기.
    Ex) data와 value - 코드 문맥상 변수가 가리키는 데이터나
    값이 아주 명확할 때에만 이런 이름을 사용한다.
  • 자신만의 규칙이나 소속된 팀의 규칙을 따르기.

6. 과제



본문 : https://ko.javascript.info/variables

profile
https://li-yo.tistory.com/ 티스토리 블로그 이전 하였습니다.
post-custom-banner

0개의 댓글