코딩 스쿨 JavaScript

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP
▶ JavaScript Tutorial
JavaScript HOME
JavaScript Introduction
JavaScript Where To
JavaScript Output
JavaScript Statements
JavaScript Syntax
JavaScript Comments
JavaScript Variables
JavaScript Let
JavaScript Const
JavaScript Operators
JavaScript Arithmetic
JavaScript Assignment
JavaScript Data Types
JavaScript Functions
JavaScript Objects
JavaScript Object Properties
JavaScript Object Methods
JavaScript Object Display
JavaScript Object Constructors
JavaScript Events
JavaScript Strings
JavaScript String Methods
JavaScript String Search
JavaScript String Templates
JavaScript Numbers
JavaScript BigInt
JavaScript Number Methods
JavaScript Number Properties
JavaScript Arrays
JavaScript Array Methods
JavaScript Array Search
JavaScript Array Sort
JavaScript Array Iteration
JavaScript Array Const
JavaScript Dates
JavaScript Date Formats
JavaScript Date Get Methods
JavaScript Date Set Methods
JavaScript Math
JavaScript Random
JavaScript Booleans
JavaScript Comparisons
JavaScript If Else
JavaScript Switch
JavaScript Loop For
JavaScript Loop For In
JavaScript Loop For Of
JavaScript Loop While
JavaScript Break
JavaScript Iterables
JavaScript Sets
JavaScript Set Methods
JavaScript Maps
JavaScript Map Methods
JavaScript Typeof
JavaScript Type Conversion
JavaScript Destructuring
JavaScript Bitwise
JavaScript RegExp
JavaScript Precedence
JavaScript Errors
JavaScript Scope
JavaScript Hoisting
JavaScript Strict Mode
JavaScript this Keyword
JavaScript Arrow Function
JavaScript Classes
JavaScript Modules
JavaScript JavaScriptON
JavaScript Debugging
JavaScript Style Guide
JavaScript Best Practices
JavaScript Mistakes
JavaScript Performance
JavaScript Reserved Words

JavaScript Reserved Words

JavaScript Reserved Words: 예약어와 사용 제한

  • *JavaScript 예약어(Reserved Words)**는 언어의 구문 구조에서 특별한 의미를 가지는 단어들로, 변수 이름, 함수 이름, 또는 **식별자(identifier)**로 사용할 수 없습니다. 이러한 예약어를 식별자로 사용하려 하면 **구문 오류(Syntax Error)**가 발생할 수 있습니다.

JavaScript에는 예약어뿐만 아니라, 미래에 사용될 예약어ECMAScript 버전에 따라 제한된 예약어도 존재합니다. 이 가이드는 JavaScript의 예약어를 소개하고, 그 의미와 사용 방법을 설명합니다.


1. JavaScript 예약어 목록

다음은 JavaScript에서 예약어로 사용되는 키워드 목록입니다. 이 단어들은 변수, 함수, 객체의 이름으로 사용할 수 없습니다.

1.1. ECMAScript 5 (ES5) 예약어

이 예약어들은 ES5(ECMAScript 5) 표준에서 정의된 키워드들입니다.

  • break: 반복문이나 switch 문을 종료합니다.
  • case: switch 문에서 사용하여 특정 조건을 처리합니다.
  • catch: try...catch 구문에서 오류를 처리할 때 사용됩니다.
  • class: ES6에서 클래스를 정의할 때 사용됩니다.
  • const: 상수를 선언합니다. 재할당이 불가능합니다.
  • continue: 반복문을 건너뛰고 다음 반복을 실행합니다.
  • debugger: 코드를 중단하고 디버거를 실행할 때 사용됩니다.
  • default: switch 문에서 기본 값을 지정할 때 사용합니다.
  • delete: 객체의 속성을 삭제할 때 사용됩니다.
  • do: do...while 문에서 반복 실행을 시작할 때 사용됩니다.
  • else: if 구문에서 조건이 거짓일 때 실행할 코드를 지정합니다.
  • enum: 열거형을 정의할 때 사용됩니다. ES6에 포함되지 않았지만 예약어로 유지됩니다.
  • export: ES6 모듈 시스템에서 모듈을 내보낼 때 사용됩니다.
  • extends: 클래스 상속을 정의할 때 사용됩니다.
  • false: 불리언 false 값을 나타냅니다.
  • finally: try...catch 구문에서 오류와 관계없이 실행될 코드를 지정합니다.
  • for: 반복문을 실행할 때 사용됩니다.
  • function: 함수를 정의할 때 사용됩니다.
  • if: 조건문을 정의할 때 사용됩니다.
  • import: ES6 모듈 시스템에서 모듈을 가져올 때 사용됩니다.
  • in: 객체 속성을 확인할 때 사용됩니다.
  • instanceof: 객체가 특정 클래스의 인스턴스인지 확인할 때 사용됩니다.
  • let: 블록 스코프 변수를 선언할 때 사용됩니다.
  • new: 생성자를 호출할 때 사용됩니다.
  • null: 비어 있는 객체 값을 나타냅니다.
  • return: 함수에서 값을 반환할 때 사용됩니다.
  • super: 부모 클래스의 생성자를 호출할 때 사용됩니다.
  • switch: 여러 조건을 처리할 때 사용됩니다.
  • this: 현재 객체를 참조할 때 사용됩니다.
  • throw: 사용자 정의 오류를 던질 때 사용됩니다.
  • true: 불리언 true 값을 나타냅니다.
  • try: 오류가 발생할 수 있는 코드를 실행할 때 사용됩니다.
  • typeof: 데이터 타입을 확인할 때 사용됩니다.
  • var: 변수를 선언할 때 사용됩니다.
  • void: 함수가 값을 반환하지 않을 때 사용됩니다.
  • while: 조건이 참일 때까지 반복 실행할 때 사용됩니다.
  • with: 특정 객체의 속성에 대해 여러 번 접근할 때 사용됩니다. (ES5 이후 비권장)
  • yield: 제너레이터 함수에서 값을 반환하고 실행을 중단할 때 사용됩니다.

2. ECMAScript 6 (ES6) 예약어

ES6(ECMAScript 2015)에서 추가된 예약어들은 다음과 같습니다. 이 키워드들은 모듈 시스템과 클래스, 제너레이터와 같은 ES6의 새로운 기능을 지원합니다.

  • class: 클래스를 정의할 때 사용됩니다.
  • const: 상수를 선언할 때 사용됩니다.
  • export: 모듈을 내보낼 때 사용됩니다.
  • import: 모듈을 가져올 때 사용됩니다.
  • let: 블록 스코프 변수를 선언할 때 사용됩니다.
  • super: 부모 클래스의 생성자를 호출할 때 사용됩니다.
  • yield: 제너레이터 함수에서 값을 반환하고 중단할 때 사용됩니다.

3. JavaScript의 미래 예약어

  • *미래 예약어(future reserved words)**는 현재 JavaScript 표준에서는 사용되지 않지만, 미래에 사용할 가능성이 있는 단어들입니다. 이러한 단어들은 미래의 표준 업데이트에서 키워드로 사용될 수 있으므로, 식별자로 사용하는 것은 피해야 합니다.

3.1. 미래 예약어 목록

  • abstract
  • boolean
  • byte
  • char
  • double
  • final
  • float
  • goto
  • implements
  • int
  • interface
  • long
  • native
  • package
  • private
  • protected
  • public
  • short
  • static
  • synchronized
  • throws
  • transient
  • volatile

이 단어들은 Java, C++ 등의 다른 언어에서 사용되는 키워드와 유사하며, 미래에 JavaScript에서 도입될 가능성이 있기 때문에 예약되어 있습니다.


4. 엄격 모드(Strict Mode)에서 제한되는 예약어

엄격 모드("use strict";)에서는 몇 가지 추가적인 예약어들이 있습니다. 엄격 모드는 코드의 실행을 더 엄격하게 해석하고 오류 탐지를 강화하므로, 특정 예약어를 사용하지 못하게 제한합니다.

4.1. 엄격 모드에서 사용이 금지된 예약어

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield

엄격 모드에서는 위의 예약어를 변수 이름이나 식별자로 사용할 수 없습니다.


5. 잘못된 예약어 사용으로 인한 오류

JavaScript 코드에서 예약어를 식별자로 사용하면 **구문 오류(SyntaxError)**가 발생할 수 있습니다. 예를 들어, 예약어를 변수 이름이나 함수 이름으로 사용하려고 하면, 해당 예약어가 문법적으로 특정 역할을 가지기 때문에 오류가 발생합니다.

5.1. 예시: 예약어를 변수 이름으로 사용한 경우

// 예약어 'const'를 변수 이름으로 사용하려는 경우
const const = 10;  // SyntaxError: Unexpected token 'const'

위 코드는 const가 예약어이기 때문에 변수 이름으로 사용할 수 없어서 오류가 발생합니다.

5.2. 예시: 미래 예약어 사용으로 인한 오류

// 'class'는 ES6에서 예약어로 도입됨
var class = "Math";  // SyntaxError: Unexpected token 'class'

  • *class*는 ES6 예약어이므로 변수 이름으로 사용할 수 없습니다.

6. 예약어를 피하는 방법

예약어를 변수 이름이나 함수 이름으로 사용할 수 없으므로, 예약어와 겹치지 않도록 이름을 지어야 합니다. 일반적으로 예약어에 의미를 추가하거나 변형을 가하는 방식으로 문제가 발생하지 않게 할 수 있습니다.

6.1. 예시: 예약어를 피한 변수 이름

// 예약어 'class' 대신 'className' 사용
const className = "Math";

위 코드에서는 class 대신 **className**을 사용하여 예약어 문제를 피했습니다.


7. 식별자 규칙

JavaScript에서 **식별자(identifier)**를 정의할 때는 예약어를 피해야 할 뿐만 아니라, 다음의 규칙을 따라야 합니다.

  • 식별자는 문자(a-z, A-Z), 밑줄(_), 또는 **달러 기호($)**로 시작해야 합니다.
  • 이후에는 숫자도 포함될 수 있습니다.
  • JavaScript에서 대소문자를 구분합니다.
  • 예약어는 사용할 수 없습니다.

7.1. 예시: 올바른 식별자

let _counter = 1;
let $element = document.getElementById('myElement');
let user

Name = 'Alice';


요약

  • JavaScript에는 언어 구문에 사용되는 예약어가 있으며, 이러한 단어들은 식별자로 사용할 수 없습니다.
  • let, const, class, function 등의 예약어는 변수 이름이나 함수 이름으로 사용할 수 없습니다.
  • 미래 예약어와 **엄격 모드(Strict Mode)**에서 제한된 단어도 사용에 주의해야 합니다.
  • 예약어를 피하려면 의미를 추가하거나 변형한 변수 이름을 사용하는 것이 좋습니다.

JavaScript의 예약어와 식별자 규칙을 잘 이해하고 사용하면 문법 오류를 피하고, 더 명확하고 유지보수하기 쉬운 코드를 작성할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com