ES6에 새로 추가된 Symbol 데이터 유형과 사용 시나리오


⭐ 칼럼 소개

프론트엔드 입문 여정: 멋진 웹 개발 세계를 탐험해 보세요. 이 칼럼을 구독하려면 위 또는 오른쪽에 있는 링크를 클릭하세요. 기하학이 여러분을 프론트엔드 여정으로 안내할 것입니다.

프런트엔드 진입 여정에 오신 것을 환영합니다! 이 칼럼은 웹 개발에 관심이 있고 이제 막 프론트엔드 분야에 입문한 분들을 위해 맞춤 제작되었습니다. 당신이 완전한 초보자이든, 기본적인 지식을 갖춘 개발자이든, 여기에서는 체계적이고 친숙한 학습 플랫폼을 제공할 것입니다. 본 칼럼에서는 매일 질문과 답변 형식으로 업데이트하여, 선별된 프론트엔드 지식 포인트와 자주 묻는 질문에 대한 답변을 제시해 드립니다. Q&A 형식을 통해 프론트엔드 기술에 대한 독자들의 질문에 보다 직접적으로 답변하고, 모두가 점차 탄탄한 기반을 다질 수 있도록 돕고자 합니다. HTML, CSS, JavaScript 또는 일반적으로 사용되는 다양한 프레임워크와 도구이든, 우리는 개념을 간단하고 이해하기 쉬운 방식으로 설명하고, 배운 내용을 확고히 할 수 있는 실용적인 예와 연습을 제공합니다. 동시에 프런트엔드 개발에서 다양한 기술을 더 잘 이해하고 적용하는 데 도움이 되는 몇 가지 실용적인 팁과 모범 사례도 공유할 것입니다.

여기에 이미지 설명을 삽입하세요.

그뿐만 아니라, 여러분이 배운 지식을 실제 개발에 적용할 수 있도록 실용적인 프로젝트 튜토리얼도 정기적으로 출시할 예정입니다. 실제 프로젝트 실습을 통해 프론트엔드 개발의 워크플로우와 방법론을 더 잘 이해하고, 문제 해결과 독립적인 개발 능력을 키워나갈 수 있습니다. 우리는 지속적인 축적과 연습만이 프론트엔드 개발 기술을 진정으로 마스터할 수 있다고 믿습니다. 그러니 도전에 대비하고 이 프론트엔드 진입 여정을 용감하게 시작하세요! 귀하가 직업 변화를 원하든, 기술 향상을 원하든, 개인적인 관심 사항을 충족시키든, 우리는 귀하에게 최고의 학습 리소스와 지원을 제공하기 위해 최선을 다하고 있습니다. 웹 개발의 놀라운 세계를 함께 탐험해 보세요! 프론트엔드 입문 여정에 동참하여 뛰어난 프론트엔드 개발자가 되어보세요! 프런트엔드 여정을 시작해보자


⭐ ES6의 기호 데이터 유형

ES6에는 Symbol이라는 새로운 기본 데이터 유형이 도입되었습니다. 기호는 고유한 값을 나타내는 데 사용되는 기본 데이터 유형입니다. Symbol() 생성자를 통해 생성된 각 기호 값은 고유하며 다른 기호 값과 동일하지 않습니다. 기호는 JavaScript에서 다양한 실제 응용 프로그램을 포함하며 그 중 일부는 다음과 같습니다.


⭐객체 속성 이름

속성 이름의 고유성을 보장하기 위해 기호를 개체 속성의 이름으로 사용할 수 있습니다. 이는 실수로 재정의할 수 없는 개체 속성을 만드는 데 유용합니다.

const uniqueKey = Symbol('description');
const obj = {
    
    
  [uniqueKey]: '这是一个唯一的属性'
};

console.log(obj[uniqueKey]); // '这是一个唯一的属性'

⭐ 속성 충돌 방지

기호를 사용하면 서로 다른 모듈이 서로 다른 기호를 속성 이름으로 사용할 수 있으므로 서로 다른 라이브러리나 모듈 간의 속성 이름 충돌을 피할 수 있습니다.

// 在模块1中
export const MY_SYMBOL = Symbol('my symbol');

// 在模块2中
import {
    
     MY_SYMBOL } from './module1';
const obj = {
    
    
  [MY_SYMBOL]: '这是一个唯一的属性'
};

⭐ 내장 기호

ES6에는 다음과 같은 특별한 목적을 가진 내장 기호가 도입되었습니다.

  • Symbol.iterator: 객체의 기본 반복자 메서드를 정의하는 데 사용됩니다.
  • Symbol.match: 개체가 정규식과 일치하는지 여부를 지정하는 데 사용됩니다.
  • Symbol.species: 파생 객체를 생성하기 위해 생성자를 지정하는 데 사용되는 생성자입니다.
  • Symbol.toPrimitive: 객체를 기본 값(예: 숫자, 문자열 또는 부울)으로 변환하는 데 사용됩니다.
const obj = {
    
    
  [Symbol.toPrimitive](hint) {
    
    
    if (hint === 'number') {
    
    
      return 42;
    }
    return 'Hello, World!';
  }
};

console.log(obj * 2); // 84
console.log(String(obj)); // 'Hello, World!'

⭐ 반복자와 생성기

기호를 사용하여 객체의 반복 동작을 사용자 정의할 수 있습니다. 예를 들어 메서드를 정의하여 Symbol.iterator객체를 반복 가능하게 만들 수 있습니다 .

const myIterable = {
    
    
  [Symbol.iterator]: function* () {
    
    
    yield 1;
    yield 2;
    yield 3;
  }
};

for (const value of myIterable) {
    
    
  console.log(value);
}
// 输出:
// 1
// 2
// 3

이러한 예는 JavaScript에 새로운 식별자 유형을 도입하고 보다 안전하고 충돌 없는 속성과 메서드를 만드는 데 도움이 되는 Symbol의 고유성과 유용성을 강조합니다.


⭐마지막에 쓰세요

이 칼럼은 폭넓은 독자층을 대상으로 하며, 프론트엔드를 처음 접하는 초보자나, 프론트엔드를 배우지 않았지만 프론트엔드에 관심이 있는 사람, 자신을 더 잘 보여주고 확장하고 싶은 백엔드 학생에게 적합합니다. 인터뷰 과정에서 프론트엔드 지식 포인트가 좀 있기 때문에, 프론트엔드에 대한 기본 지식을 갖추고 이 칼럼을 따라오신다면 부족한 부분을 찾아 메우는 데에도 큰 도움이 될 수 있습니다. 출력, 기사에 부족한 점이 있으면 홈페이지 왼쪽을 통해 저에게 연락하실 수 있습니다. , 함께 진행합시다. 동시에 여러 칼럼을 모두에게 추천합니다. 관심 있는 파트너는 구독할 수 있습니다. 아래 열에 대해서는 내 홈페이지로 이동하여 다른 열을 볼 수도 있습니다.

프론트엔드 게임(무료) 이 칼럼에서는 HTML, CSS, JavaScript에 대한 기본 지식을 활용하여 다양하고 흥미로운 페이지 게임을 함께 만들어 가며 창의성과 재미가 가득한 세계로 여러분을 안내할 것입니다. 당신이 초보자이거나 프론트엔드 개발 경험이 있다면 이 칼럼은 당신을 위한 것입니다. 기본적인 것부터 시작하여 페이지 게임을 구축하는 데 필요한 기술을 안내해 드립니다. 실제 사례와 연습을 통해 HTML을 사용하여 페이지 구조를 구축하고, CSS를 사용하여 게임 인터페이스를 아름답게 만들고, JavaScript를 사용하여 게임에 대화형 및 동적 효과를 추가하는 방법을 배우게 됩니다. 이 칼럼에서는 미로 게임, 벽돌 깨기, 뱀, 지뢰 찾기, 계산기, 비행기 전투, 틱택토, 퍼즐, 미로 등을 포함한 다양한 유형의 미니 게임을 다룰 것입니다. 각 프로젝트는 자세한 설명과 코드 예제를 통해 간결하고 명확한 단계로 구축 프로세스를 안내합니다. 동시에 페이지 성능과 사용자 경험을 개선하는 데 도움이 되는 몇 가지 최적화 팁과 모범 사례도 공유할 것입니다. 프런트엔드 기술을 연습할 흥미로운 프로젝트를 찾고 있거나 페이지 게임 개발에 관심이 있다면 프런트엔드 게임 칼럼이 최선의 선택이 될 것입니다. 프런트엔드 게임 칼럼을 구독하려면 클릭하세요.

여기에 이미지 설명을 삽입하세요.

Vue3 투명 튜토리얼 [0에서 1까지](유료) Vue3 투명 튜토리얼에 오신 것을 환영합니다! 이 칼럼은 Vue3와 관련된 포괄적인 기술 지식을 모든 사람에게 제공하는 것을 목표로 합니다. Vue2 경험이 있다면 이 칼럼을 통해 Vue3의 핵심 개념과 사용법을 익힐 수 있습니다. 우리는 처음부터 시작하여 완전한 Vue 애플리케이션을 구축하기 위해 단계별로 안내할 것입니다. 실제 사례와 연습을 통해 Vue3의 템플릿 구문, 구성 요소 개발, 상태 관리, 라우팅 및 기타 기능을 사용하는 방법을 배우게 됩니다. 또한 Vue3의 새로운 기능을 더 잘 이해하고 적용할 수 있도록 Composition API 및 Teleport와 같은 몇 가지 고급 기능을 소개합니다. 이 칼럼에서는 자세한 설명과 샘플 코드와 함께 각 프로젝트를 간결하고 명확한 단계로 안내하겠습니다. 동시에 Vue3 개발의 몇 가지 일반적인 문제와 솔루션을 공유하여 어려움을 극복하고 개발 효율성을 향상시키는 데 도움을 드릴 것입니다. Vue3를 심층적으로 배우고 싶거나 프런트엔드 프로젝트 구축에 대한 포괄적인 가이드가 필요한 경우 Vue3 철저한 튜토리얼 칼럼은 귀하에게 없어서는 안 될 리소스가 될 것입니다. Vue3 Transparent Tutorial [0부터 하나까지] 칼럼을 구독하려면 클릭하세요.

여기에 이미지 설명을 삽입하세요.

TypeScript 시작 가이드(무료)는 TypeScript 관련 기술을 빠르게 시작하고 숙달하는 데 도움을 주기 위해 고안된 칼럼입니다. 간결하고 명확한 언어와 풍부한 샘플 코드를 통해 TypeScript의 기본 개념, 구문 및 기능을 심도있게 설명합니다. 초보자이든 숙련된 개발자이든 여기에서 자신에게 적합한 학습 경로를 찾을 수 있습니다. 유형 주석, 인터페이스, 클래스와 같은 핵심 기능부터 모듈식 개발, 도구 구성, 공통 프런트엔드 프레임워크와의 통합에 이르기까지 모든 측면을 포괄적으로 다룹니다. 이 칼럼을 읽으면 JavaScript 코드의 안정성과 유지 관리 가능성을 향상시키고 프로젝트에 더 나은 코드 품질과 개발 효율성을 제공할 수 있습니다. 이 흥미롭고 도전적인 TypeScript 여행을 함께 시작합시다! TypeScript 시작 가이드 칼럼을 구독하려면 클릭하세요.

여기에 이미지 설명을 삽입하세요.

추천

출처blog.csdn.net/JHXL_/article/details/132844454