- [HTML + JavaScript] HTML5, JavaScript ES6에서 추가된 문법2025년 01월 23일
- KIMJAVAN
- 작성자
- 2025.01.23.:46
728x90JavaScript ES6 (ECMAScript 2015)에서 새로 추가된 주요 문법
- let과 const:
- let: 블록 스코프를 가진 변수 선언 (기존 var는 함수 스코프).
- const: 상수 선언, 한 번 값이 할당되면 재할당할 수 없음.
let x = 10; const y = 20;
2. 화살표 함수 (Arrow Functions):
- function 키워드를 사용하지 않고 간결하게 함수를 작성할 수 있게 해줍니다.
- this 바인딩을 다르게 처리하므로, 다른 함수 내에서 사용시 유용합니다.
const sum = (a, b) => a + b;
3.템플릿 리터럴 (Template Literals):
- 문자열을 만들 때 ${}를 사용하여 변수나 표현식을 삽입할 수 있습니다.
- 멀티라인 문자열도 쉽게 다룰 수 있습니다.
const name = "John"; const message = `Hello, ${name}!`;
4.디스트럭처링 할당 (Destructuring Assignment):
- 객체나 배열의 값을 변수로 쉽게 추출할 수 있습니다.
const person = { name: "John", age: 30 }; const { name, age } = person; // name과 age 변수에 값 할당
5. 클래스 (Classes):
- 객체 지향 프로그래밍에서 클래스를 사용할 수 있는 문법을 제공합니다.
class Person { constructor(name, age) { this.name = name; this.age = age; } greet() { console.log(`Hello, my name is ${this.name}`); } }
6. 모듈 (Modules):
- import와 export를 사용하여 코드의 모듈화를 할 수 있게 해줍니다.
// 파일 A.js export const greet = () => "Hello"; // 파일 B.js import { greet } from './A.js';
7. Promise:
- 비동기 작업을 처리하는 새로운 방식으로, then(), catch(), finally() 등을 사용하여 콜백 지옥을 피할 수 있습니다.
let promise = new Promise((resolve, reject) => { let success = true; if(success) { resolve("Success!"); } else { reject("Error!"); } }); promise.then(response => console.log(response)) .catch(error => console.log(error));
HTML5에서 새로 추가된 주요 기능
- 새로운 도큐먼트 구조 요소:
- <header>, <footer>, <article>, <section>, <nav>, <aside>, <figure>, <figcaption> 등의 새로운 시맨틱 태그가 추가되었습니다.
- 웹 페이지의 구조를 더 의미 있게 표현할 수 있게 도와줍니다.
<header> <h1>Welcome to My Website</h1> </header>
2. 폼 요소 개선:
- <input>에 type="email", type="date", type="number" 등 다양한 타입이 추가되어 입력 유효성 검사를 HTML만으로 처리할 수 있게 됐습니다.
- <input>에 placeholder, required, pattern 속성을 사용하여 사용자의 입력을 쉽게 검증할 수 있습니다.
<input type="email" placeholder="Enter your email" required>
3. 비디오 및 오디오 지원:
- <video>와 <audio> 태그가 추가되어, 별도의 플러그인 없이 HTML만으로 멀티미디어 콘텐츠를 삽입하고 제어할 수 있게 되었습니다.
<video controls> <source src="movie.mp4" type="video/mp4"> Your browser does not support the video tag. </video>
4. 로컬 저장소 (Local Storage):
- localStorage와 sessionStorage API가 추가되어 클라이언트 측에 데이터를 저장할 수 있습니다. localStorage는 영구적인 저장소이고, sessionStorage는 세션 단위로 데이터를 저장합니다.
localStorage.setItem('username', 'John'); const username = localStorage.getItem('username');
5. Canvas API:
- <canvas> 태그를 사용하여 그래픽을 그릴 수 있습니다. JavaScript로 동적으로 그림을 그리거나 애니메이션을 생성할 수 있습니다.
<canvas id="myCanvas" width="500" height="500"></canvas> <script> var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); ctx.fillStyle = "red"; ctx.fillRect(20, 20, 150, 100); </script>
6. Geolocation API:
- 사용자의 위치 정보를 가져오는 API가 추가되었습니다.
navigator.geolocation.getCurrentPosition(function(position) { console.log(position.coords.latitude, position.coords.longitude); });
7. Web Workers:
- 백그라운드 스레드를 이용하여 JavaScript 코드의 성능을 최적화할 수 있게 도와줍니다.
const worker = new Worker('worker.js'); worker.postMessage('Hello'); worker.onmessage = function(e) { console.log(e.data); };
8. WebSockets:
- 실시간 양방향 통신을 위한 WebSocket API가 추가되었습니다. 서버와 클라이언트 간에 실시간으로 데이터를 주고받을 수 있습니다.
const socket = new WebSocket('ws://example.com/socket'); socket.onopen = function() { socket.send('Hello Server'); }; socket.onmessage = function(event) { console.log('Message from server: ', event.data); };
'마크업 언어 > HTML' 카테고리의 다른 글
[JS] 파일 다운받기 (통신) (0) 2024.08.16 html 특수문자코드 (0) 2024.07.11 [HTML] iframe 스크롤 연동 (0) 2024.07.09 [Html] 응답 메세지 상태코드 (Status code) (1) 2023.11.27 [Html] CRUD // Http method // 서버통신 (0) 2023.11.27 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)