JS 기본 문법 개요

gang_shik·2025년 3월 15일
0

JavaScript

목록 보기
2/23

문법 개요

  • SyntaxError의 경우 문법이 잘못됐을 때의 에러임
  • 문법은 마치 언어처럼 문장을 구성하는 요소가 있듯이 JS 언어 자체의 대한 것임
  • 키워드, 변수, 값, 문, 함수, 객체, 배열, 스코프 등의 문법을 지켜야 한다는 것

주석

  • 사람이 이해하기 위해 작성하는 코드라고 볼 수 있음
  • 과거의 나와도 소통하기 위한 장치라고 볼 수 있음(TS로 가면 좀 더 줄어들 것임)
  • 예시
// 기본 한 줄 주석
//

/* 기본 한 줄 주석(여닫기 필수) */

/*
    여러 줄
    주석입니다.
*/

// 아래 형태도 될 수 있다 정도 이해(추천하지 않음)
console.log("Hello " /* 끼워넣기 */ + "World");

// JS DOC(상세한 주석, 코드를 사용하는 사람들에게 안내하기 위한)
// 함수에 대한 설명, 사용법 등
/**
 * Represents a book.
 * @constructor
 * @param {string} title - The title of the book.
 * @param {string} author - The author of the book.
 */
function Book(title, author) {

}

값 & 식 & 문

  • 값은 하나의 값이고 식의 경우 표현식(expression)이라고 하고 값을 생성하고 귀결함
  • 값의 경우 1, '문자열', true, false, null, undefined 등이 있음
  • 이 때, 값으로 귀결된 식 or 연산식이라함은 1 + 1, 1 > 2, '안' + '녕' + '하세요' 등 볼 수 있음
  • 식 & 표현식을 그래서 잘 따져서 생각해야함
  • 문(statement)의 경우, 어떤 행동을 한다. 흐름을 제어한다고 볼 수 있음
  • 중괄호 안에서 돌아가는데 이는 인터프리터에게 명령한다, 그것을 지시문으로 처리한다고 볼 수 있음
  • 그 안에서는 표현식, 식이 들어가서 조건이 돌아감, 직접 선언해서 처리할 수도 있음
  • 예시
if () {

}

for () {

}

while () {

}

제어문과 블럭

  • 제어문에서 바디(몸통) <= 로직(명령) 이를 토대로 흐름을 제어할 수 있다고 봄
  • 그래서 그 흐름을 제어하는 영역은 블럭안에 있다고 이야기 하는 것, 아래와 같이 중첩을 해서 그 흐름을 집어넣어서 제어할 수 있음
  • if 문과 switch 케이스로 다양하게 가능함
  • 그리고 berak를 통해서 강제로 그 흐름을 중단시킬 수 있고 continue를 통해서 그 흐름을 넘어갈 수도 있음(건너뛰기의 효과)
  • 예시
// 문
// 제어문에서 바디 (몸통) <= 로직(명령)
for (반복 조건 초기화) {
  if (기상상태는 비가온다) {
    // 우산을 쓴다
    if (기상상태는 비가 많이 온다) {
      // 큰 우산을 쓴다
    }  else if (기상상태는 비가 조금 온다) {
      // 작은 우산을 쓴다.
    }
  }
}

switch (기상상태) {
  case 비가온다:
    [break;]
  case 비가 많이 온다:
    [break;]
  case 비가 조금 온다:
    [break;]
  [default:
    [break;]]
}

let i = 0;
const MAX = 10;

while (i < MAX) {
  i++;

  if (i % 2 === 0) {
    continue;
  }

  console.log(i);
}

식별자

  • 코드내에서 다양한 것을 구분하기 위한 문자열로 변수명도 포함임
  • 이 때 주의할 것은 문자열로 구성되어야 하므로, $_와 숫자까진 쓸 수 있음
  • 하지만 식별자는 일종의 예약어로 볼 수 있음, 그래서 실제 쓰는 예약어들과 겹치지 않게 유의해야함
  • 그래서 식별자는 문자열로 시작하고 언어의 내장 예약어와 중복을 피해야함

리터럴

  • 리터럴은 데이터를 직접 나타낼 수 있는 값이라고 볼 수 있음
  • 아래 모두가 다 리터럴로 볼 수 있음, 이를 통해 아래 예시처럼 쉽게 값을 만들 수 있는 것
  • 예시
const obj = {
  name: 'jang'
}

123
'jang' // new String('jang')
[]
const arr = [1, 2, 3] // new Array(1,2,3)

use strict

  • js를 엄격하게 처리하도록 바꿔주는 구문
  • js에서 느슨하게 적용되고 처리되는 부분을 엄격하게 처리되도록 바꿈
  • 조용히 무시되는 에러들이 생김
  • 단, ECMA 2015에서는 use strict가 기본으로 쓰여짐
  • 참고자료
profile
측정할 수 없으면 관리할 수 없고, 관리할 수 없으면 개선시킬 수도 없다

0개의 댓글