
📅 2025-09-17
➡️ JavaScript에 대해 새롭게 알게 된 것 또는 헷갈리는 부분 정리
let person = { name: "John", age: 30, gender: "male" };
for (let key in person) {
console.log(key + ": " + person[key]);
}
/*
객체의 프로퍼티를 순서대로 접근
*/const arry = [1,2,3];
// 기존
const a = arr[0];
const b = arr[1];
// 최신
const [x,y] = arr;
console.log(x); // 1
console.log(y); // 2const user = { name: '철수', age: 20 };
// 기존
const name = user.name;
const age = user.age;
// 최신
const { name, age } = user;
console.log(name); // "철수"
console.log(age); // 20function greet({name, age}){
console.log("name : "+ name +" / age :" + age);
}
greet({name:'철수', age:20});let arr = [1,2,3];
let newArr = [...arr, 4];
console.log(newArr) // [1,2,3,4]
// 객체
let user = {name: "철수", age: 30};
let user2 = {...user}
user2.name = "영희"
console.log(user.name) // 철수
console.log(user2.name) // 영희❗ 원본은 건들지 않음
key와 value값이 같으면 생략 가능const name = "철수"
const age = "30"
const obj = {
name, // name: name
age: newAge
}function func(a, b, ...args) {
console.log(...args); // args 배열을 펼쳐서 출력
}
func(1, 2, 3);
// a = 1, b = 2, args = [3]
// 출력: 3
func(1, 2, 3, 4, 5, 6, 7);
// a = 1, b = 2, args = [3, 4, 5, 6, 7]
// 출력: 3 4 5 6 7백틱과 ${}로 표현
const name = "철수";
const age = 20;
console.log(`제 이름은 ${name}이고, 나이는 ${age}살입니다.`);
export
default export → 파일에서 하나만 대표로 보낼 때named export → 여러 개를 동시에 내보낼 때import
export 한 것을 불러오는 문법default export 에서 가져올 때는 이름을 마음대로 지을 수 있음named export는 { } 중괄호 안에 정확한 이름을 써야 함as 키워드로 이름 바꾸기 가능* as 문법으로 한번에 가져오기 가능default export
한 파일에서 하나만 내보낼 때 사용
// name.js
const Name = () => {
console.log("Hello!");
};
export default Name;
------------------------------------------------
// 다른 파일에서 가져오기
import NewName from "./name.js";
import NameFromOtherModule from "./name.js";
NewName(); // "Hello!"
NameFromOtherModule(); // "Hello!"
named export
한 파일에서 여러 개를 내보낼 수 있음
// name.js
export const Name1 = () => {
console.log("Name1");
};
export const Name2 = () => {
console.log("Name2");
};
-----------------------
// 다른 파일에서 가져오기
import { Name1, Name2 } from "./name.js";
Name1(); // "Name1"
Name2(); // "Name2"
// 다른 이름으로 바꾸려면 as 사용
import {Name1 as newName, Name2} from "./name.js";
NewName();
// 한꺼번에 모듈 가져오기
import * as NameModule from "./name.js";
console.log(NameModule.Name1); // 함수 Name1
console.log(NameModule.Name2); // 함수 Name2
변수를 통해 함수 저장
- 함수도 값처럼 다룰 수 있기 때문에 변수에 담아둘 수 있음
함수를 다른 함수의 인자로 전달
함수는 값이므로, 다른 함수의 매개변수로 전달할 수 있음
이런 식으로 전달된 함수를 콜백 함수(callback function)라고 부르고, 이를 받아서 실행하는 함수를 고차 함수(higher-order function)라고 함
함수를 반환
다른 함수의 실행 결과로도 만들어질 수 있음
특정 동작을 만들어내는 함수 생성기(팩토리 패턴)나 클로저(closure)를 쉽게 작성할 수 있음
객체의 프로퍼티로 함수 담기
객체의 속성으로 할당할 수 있음
객체 안에 들어간 함수는 메서드(method)라고 부름
배열의 요소로 함수 담기
배열의 원소로도 저장할 수 있음
배열을 통해 여러 함수를 관리하거나, 필요한 함수를 인덱스로 꺼내 실행할 수 있음