Post

프로그래밍 기본 용어 정리 (JS 기준)

  • 표현식
    • 값을 만들어내는 간단한 코드.
  • 문장
    • 표현식이 한 개 이상 모여서 action을 취하면 문장. 문장의 종결 여부는 ;(세미콜론) 또는 엔터로 확인.
    • 그렇담 표현식 한개만 있어도 문장이 될 수 있는가? ⇒ 그렇다.
    • 표현식 ⇒ 문장은 가능하지만, (⭕) 문장 ⇒ 표현식은 불가능하다. (❌)
    • 왜? 문장 안에 표현식이 포함 되어 있는 구조이기 때문이다.
  • 그래서 표현식과 문장의 차이점이 정확히 뭔데?
    • 무언가 값을 return 하면 표현식이고, 그 값을 return하는데 도와주는 형태면 문장.
    • 우리가 상대방과 의사소통을 할 때를 생각해보자. ”문장”은 감정이나 행동을 표현하는데 도움을 주는 수단이고, 감정이나 행동 자체는 “표현”한다고 사용하지 않는가. 이걸 생각하면 표현식과 문장의 차이를 느낄 수 있을 것이라 생각한다.
    • 참고로 이 때 문장은 sentence의 의미가 아니라, statement의 의미로 사용된다.

      image

      https://dictionary.cambridge.org/ko/사전/영어/statement

      보다시피 영어사전에서도, statement란 “의견을 표현하기 위한 행위”라고 나와있다.

      고로 expression(표현식)이란 int a = 5; 처럼 정수에 5가 들어있어 라고 표현하는거고 statement(문장)이란건 if문, case문 처럼 표현식을 활용해서 무언가 action을 취하는 것이라 생각하면 되겠다.

  • 키워드
    • 언어가 처음 개발 될 때 부터 정해놓은 특별한 의미가 있는 단어들.
    • 그래서 키워드는 변수명으로 사용할 수 없다.
    • 키워드가 왜 필요할까? 전세계 몇천만? 몇억?명이 개발하는데, 누구는 if문을 막 providing으로 적는다고 생각해보자 그러면 코드를 어케 읽겠는가.. (물론 지금도 읽기 어렵지만) 최소한의 공통된 문법은 정해줘야 하지 않겠는가.
  • 식별자
    • 이름을 붙일 때 사용하는 단어.
    • 개발자 밈하면 항상 떠오르는게 변수명 짓는거 아닌가요? 아님 말고..

      https://scontent.ficn1-1.fna.fbcdn.net/v/t1.6435-9/54522537_561909187626864_3700189083704754176_n.png?_nc_cat=106&ccb=1-7&_nc_sid=127cfc&_nc_ohc=W8Ak7jbt7loQ7kNvgEjn9Yr&_nc_zt=23&_nc_ht=scontent.ficn1-1.fna&_nc_gid=Acmsr5seZIKMOWO4rMs523l&oh=00_AYDdbe_trIOvYW2Y6JJN9tIBTMMNxj-oKPAWVEZJcf2U8w&oe=678D9168

    • 클래스 이름을 지을 땐 첫글자를 대문자로 (e.g. ShinchanFamily)
    • 변수, 인스턴스, 함수, 메소드는 첫글자를 소문자로. (e.g. shinchanFamilyName)
  • 스코프
    • 스코프란, 구역을 의미한다.
    • 블록스코프: { } 범위 안에서만 사용할 수 있음.
    • 함수스코프: 그 함수 안에서만 사용할 수 있음.
    • 전역스코프: 전세계에서 사용할 수 있음.
    • 전역 스코프에서 사용한 이름을 블록 스코프 안에서 사용하는건 가능하지만,

      1
      2
      3
      4
      
        const shinchanDogName = "흰둥이";
        {
        	console.log(shinchanDogName);
        }
      
    • 이처럼 블록 스코프에서 사용한 이름을 전역에서 사용하는건 불가능하다.

      1
      2
      3
      4
      
        {
        	const shinchanDogName = "흰둥이";
        }
        console.log(shinchanDogName);
      
  • 상수
    • 변할 수 없는 값. const로 선언
    • 한 번 선언된 상수의 값은 변경할 수 없다. 예를 들어서 내가 블록 스코프 안에다 const name = “짱구”;라고 선언하면서 name에다 “짱구”라는 문자열 자료값을 넣어줬다고 가정하자. 근데 그 뒤에 name = “철수”; 라고 자료값을 또 넣을 수 있겠는가? 불가능하다. 왜일까? 애초에 상수가 변할 수 없는 값이라는 뜻인데, 동일한 식별자 이름으로 여러번 값을 바꿔서 사용할 수 있으면 그게 변수지, 상수겠는가?
    • 그래서 상수는 선언할 때 동시에 값을 무조건 넣어줘야 된다. const name; name = “짱구”; 이런게 불가능(❌).
  • 변수
    • 변할 수 있는 값. let으로 선언
    • 변수는 상수랑 반대로 값을 변경할 수 있다. 여기선 let name = “짱구”; name = “철수”; 이런게 가능하다는 말씀.

참고로 상수든 변수든 간에 같은 스코프 내에 동일한 식별자 이름은 두 번 이상 사용할 수 없다. let name = “짱구”; let name = “철수”;든, const name = “짱구”; const name = “철수”;는 불가능하다. 왜일까? 사람 입장에서 동일한 이름을 두 번 쓰면 혼란스럽듯이, 컴퓨터도 동일한 이름을 중복 선언하면 기존 값을 덮어쓸지, 새롭게 추가할지 결정할 수 없어서 오류를 내는 것이다.

  • 전위, 후위
    • (아래 코드 기준)
    • 전위 연산자는 일단 a에다가 +1을 하고, 그 다음에 log를 찍는거다.
    • 후위 연산자는 일단 a를 찍고 그 다음에 +1을 하는 걸 의미한다.

      1
      2
      3
      
        let a = 5;
        console.log(a++); // 5
        console.log(++a); // 7
      
This post is licensed under CC BY 4.0 by the author.