splice() 복기!!
"배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경"
주의!! 새로운 배열을 반환하는 slice()와 달리, splice()는 기존 배열 건드리는 거임!!
/* 기본구조 */
arr.splice(start[, deleteCount[, item1[, item2[, ...]]]])
/* 예시 */
arr.splice(2,3,"a","b","c");
// arr 배열에서 2번 인덱스부터 3개 요소 제거 후,
// 2번 인덱스 위치부터 "a", "b", "c"를 순서대로 삽입
start
- 배열 변경을 시작하는 인덱스
- start의 절대값이 배열의 길이보다 크면 강제로 0번 인덱스부터 시작!
deleteCount
- 제거할 요소의 개수, 삽입만 하고 싶으면 얘를 0으로!!
- deleteCount가 생략되거나, 값이 배열 길이에서 start를 뺀 길이보다 크면, start부터 이후의 모든 요소 제거
반환값
- 제거되는 요소들이 담긴 배열
- deleteCount가 1이면 하나 담긴 배열
- 제거하는 값이 없으면 빈 배열
Node.js 기본 내장 모듈 몇몇
fs : File System
import fs from "fs";
- fs.readFile(읽을 파일의 경로, 인코딩 방식, 열람 완료 후 실행할 콜백함수)
fs.readFile(path.join(basePath, fileName), "utf8", (err, data) => {}
path : 파일 및 디렉토리의 경로 다루는 작업 지원
import path from "path";
- path.dirname(파일명) : 현재 파일이 속한 디렉토리 이름 알려줌
const __dirname = path.dirname(__filename);
- path.join(디렉토리명, 가고싶은 경로) : 원하는 디렉토리에서 원하는 위치로 가는 절대 경로 만들어줌!
const basePath = path.join(__dirname, "../../assets");
url : URL 파싱이나 조작, 변환 등의 작업 지원
import { fileURLToPath } from "url";
fileURLToPath(파일의URL)
이름에서 알 수 있다시피, 파일의 URL을 운영체제에 맞는 파일 System Path로 변환해줌
File URL
- 브라우저나 네트워크 환경에서 파일에 접근할 때 주로 활용 (물론 로컬 시스템에서도 쓸 때 이씀)
- file:// 프로토콜 통해 참조함!!
- 예시 : file://C:/Users/John/Documents/file.txt
File System Path
- 실제 파일 시스템 안에서 파일이나 디렉토리가 가리키는 경로
- 연관 개념으로 그 익숙한 절대경로와 상대경로가 있다!!
- 예시 : C:\Users\John\Documents\file.txt
import.meta.url
현재 모듈이 실행되는 위치에 대한 URL을 제공
ESM에서만 사용할 수 있는 메타 데이터!!
meta data
"데이터에 대한 데이터"
- 본문 데이터를 이해하고 활용하는 데 필요한 정보를 담음. 헤더와 페이로드 관계 같은 느낌
- 데이터 환경에 따라 메타 데이터의 내용물은 달라짐
- file system의 메타 데이터 : 파일명, 용량, 생성일자, 수정일자, 권한, 확장자 등등
ESM
"ECMAScript Module, ES 모듈, ESM"
자바스크립트의 ECMAScript 6에서 도입된 모듈화 방식
ES6 모듈의 주요 특징
- import와 export
- "type":"module"을 통한 일괄 모듈 처리 또는, .mjs 확장자 통한 개별 모듈 처리
- 모듈 로딩이 비동기적임!!!
추가로 알게 된 것
- socket.on이 받는 거!! socket.emit이 보내는 거!!
클라 파일에 있으면 주체가 클라고, 서버 파일에 있으면 주체가 서버임!!
- 배열 메서드들 콜백함수의 매개변수 중 index가 이씀.
map(), reduce(), filter(), forEach() 등등등 다 있음!!! 현재 순회 중인 요소의 인덱스를 활용할 수 있다!!
'TIL&WIL' 카테고리의 다른 글
241213 TIL - 개인과제01, 음수인덱스 (0) | 2024.12.13 |
---|---|
241212 TIL - 개인과제 기획 (0) | 2024.12.12 |
241210 TIL - Promise.all, 터미널기본명령어, UTF, 트러블슈팅 (0) | 2024.12.10 |
241209 TIL - 알고리즘 트러블슈팅(sort와 forEach 관련) (0) | 2024.12.09 |
7조 KPT 회고 (0) | 2024.12.09 |