[JS] 변수 / 선언 / 할당 / 변수타입

아임 레조·2020년 8월 10일
0

STUDY

목록 보기
1/34
post-thumbnail
  • 변수의 선언과 할당에 대해서 설명하고 코드로 작성할 수 있어야 한다.
  • 표현문이 값으로 변환되어서 변수에 할당되어 담기는 과정을 설명할 수 있어야 한다.

변수(Variable)

'상황에 따라 변할 수 있는 값'을 말하고 '이름(Label)이 붙은 값'을 의미한다. 변수는 어떤 값을 넣기 위해 만들어진 이름이 붙은 상자로 쉽게 이해할 수 있다. 변수에는 들어갈 수 있는 값이 다 다르기 때문에 변수를 이용하면 선언된 값을 다른 곳에서도 이용할 수 있다. 변수를 사용하게 되면 가독성이 높아지고 코드를 잘못 작성했을 때 조금 더 쉽게 잘못된 곳을 찾을 수 있다는 장점이 있다. 변수와 함께 나오는 개념에는 '선언(declaration)'과 '할당(assignment)'가 있다.

선언(Declaration)

'변수를 선언'한다는 생소한 표현이 나온다. 변수를 선언할 때는 'let'이라는 키워드를 사용한다. 이것은 곧 자바스크립트라는 월드(World)에 변수(상자)가 생겼다는 것을 의미하고, 어떤값을 넣을 수 있는 자리를 컴퓨터 메모리에 미리 잡아둔 것으로 이해할 수 있다. let이라는 키워드는 소문자로 쓰며, 한번 선언을 하면 다시 선언하지 않는다.

   let weather; // weather라는 이름을 가진 변수를 let이라는 키워드로 선언 

할당(Assignment)

'변수에 값을 할당한다'라는 생소한 표현이 나온다. 위에서 선언한 'weather'라는 변수는 텅빈 상자 상태이므로 그 상자 안에 어떤 값을 넣는 작업을 하는 것을 말한다. 변수에 값을 할당할때는 연산자 '='를 쓰고, '=' 뒤에 할당하고자 하는 값을 넣는다(할당연산자). 여기서 '='은 절대로 '같다'를 의미하는 것이 아니다! '할당한다, 대입한다'는 뜻이다! (이게 헷갈림)

예를 들어서, 변수를 선언하고 값을 할당하는 것을 한번에 표현하면 아래와 같다.

   let weather; // weather라는 변수 선언 
   weather = 'Rainy'; // weather라는 변수(상자)에 문자열 'Rainy'를 할당 
   
   let weather = 'Rainy'; // 자주 사용하는 코드라 선언, 할당을 한줄에 쓸수도 있다 
   

선언을 하지 않고 할당을 시도하면, 자바스크립트 월드에 아무것도 없기 때문에 할당을 할 수가 없어서 에러가 나게 된다. 선언은 했는데 할당이 없는 변수라면, 그 결과는 '정의되지 않았다(Undefined)'가 나온다. (빈 상자에 아직 아무것도 넣지 않았으니 빈 상자, 정의되지 않았다가 나오는 것이 당연하다)

표현식(Expression)

표현식에서 변수를 잘 사용할 수 있다. 표현식은 '값을 산출해내는 코드'를 말한다. 자바스크립트도 글자, 숫자, 기호를 한 글자씩 '독해'해서 하나의 값으로 컴파일(compile)한다.

변수명엔 공백을 쓸 수 없기 때문에** 보통 단어의 첫 글자를 대문자로 써서 붙인다. 이게 낙타 등 모양처럼 생겨서 camel case라고 부르기도 한다. 결과물을 다시 변수로 담을 수도 있고 동일한 변수를 이용해서 대입할 수도 있다.

   let areaOfCircle = pi * radius * radius; //areaOfCircle 변수명 확인

변수 작명 가이드

꼭 지켜야 하는 룰

  1. 자바스크립트 식별자는 '문자(a-z, A-Z)','밑줄(_)' 혹은 달러기호($)'로 시작해야 하고 두번째 글자부터는 숫자도 가능하다.
  2. 대문자와 소문자는 구별한다. myname과 myName은 다른 이름이다.
  3. 예약어는 사용하면 안된다.(if,for,let등)

지키면 좋은 룰(더 좋은 스타일을 위해)

  1. 의미 없는 이름은 좋지 않다. (찾기도 활용하기도 어려움)
  2. 너무 추상적인 이름은 좋지 않다. (이해하기 어려움)
  3. 모든 변수 이름은 'camelCase'로 쓰는 것이 좋다.

변수의 6가지 타입

  1. 숫자(number): 정수(Integer), 소수(Floating point)
  2. 문자열(string): "", '' (하나로 통일하는 것이 중요)
  3. 불리언(Boolean: true or false가 나오는 것) : isFemale 여성인가요?
  4. 섞인 타입(Compound) : 배열이나 객체
  5. Undefined도 타입
  6. 함수도 타입
profile
어쩌다보니 백엔드 개발자/ 번아웃 없이 재밌게 개발하고 싶어요

0개의 댓글