[자바스크립트(Java Script)]2. 자바스크립트 문법

손영민's avatar
Apr 14, 2025
[자바스크립트(Java Script)]2. 자바스크립트 문법

1. 변수 선언과 기본 타입

JavaScript에서는 let, const, var를 사용해 변수를 선언합니다. 여기서는 주로 let이 사용되었습니다.
//변수 //가장 최상단에 적을 수 있는 것들을 1급 객체 (자바에서는 1급 객체는 클래스 밖에 없다) let n1 = 1;//Number 타입 let n2= 10.5;//Double 타입 let s1 ="문자열";//String 타입 let s2 ='문자열'; let s3 =`문자열 ${n1}` let b1 =true; //bool let u1 =null; //null 타입 let u2; // undefied 타입 console.log(n1); console.log(n2); console.log(s1); console.log(s2); console.log(s3); console.log(b1); console.log(u1); console.log(u2);

2. 컬렉션과 오브젝트

JavaScript에서는 배열과 객체를 사용하여 데이터를 구조화할 수 있습니다.
// 컬렉션, 오브젝트 let list =[1,2,3,4]; let hobby =["축구","농구"]; let user ={ id:1, username:"ssar", hobby:hobby, }; user.username ="cos"; hobby[0] ="탁구" console.log(user.id); console.log(user.username); console.log(user.hobby); console.log(user.hobby[0]);

3. 함수 선언과 호출

JavaScript에서 함수는 여러 방식으로 선언할 수 있습니다.
function m1(){ console.log("m1 호출됨"); } function m2(n1, n2){ console.log(`${n1}, ${n2}`); } function m3(){ return 10; } m1(); m2(1,2); let r = m3(); console.log("r",r);

4. 람다식 (Arrow Functions)

람다식은 ES6에서 도입된 간결한 함수 표현 방식입니다. 화살표 함수(Arrow Functions)라고도 합니다.
//람다식 // function에 이름이 없음 : 익명함수 let m1 = function () { console.log("m1 호출됨"); }; m1(); // Lamda 식: 이름이 없는 익명함수 let m11 = ()=>{ console.log("m11 호출됨"); }; m11(); // Lamda Statement let m2 = (n1, n2) => { console.log(`${n1}, ${n2}`); }; m2(1,3); //Lamda Expression let m3 = (n1, n2) =>{ return n1 + n2; }; let r1 = m3(5,6); console.log(r1); // Lamda Expression let m33 = (n1, n2) => n1 + n2; let r2 = m33(1,5); console.log(r2); // Lamda Statement // let m333 = (n1, n2) => console.log(n1+n2); // m333(10,50); // Lamda Statement let m333 = (n1, n2) => {console.log(n1+n2)}; m333(10,50); let r3 = m333(10,50); console.log(r3); // Lamda 표현식 (1줄,2줄이상) let k1 = () => 5; let k2 = () => { return 5; }; // Lamda 문장 let k3 = () => { console.log(5); };

4.1 익명 함수와 람다식의 기본 형태

// 익명 함수(Anonymous Function) let m1 = function() { console.log("m1 호출됨"); }; // 람다식(Arrow Function) let m11 = () => { console.log("m11 호출됨"); };

4.2 람다 Statement와 Expression의 차이

람다 함수는 Statement(문장)와 Expression(표현식) 두 가지 형태로 작성할 수 있습니다.

람다 Statement (문장)

  • 중괄호 {}를 사용
  • return 키워드가 필요할 수 있음
  • 여러 줄의 코드 작성 가능
  • 값을 반환하지 않는 실행문에 주로 사용
// 람다 Statement 예시 let m2 = (n1, n2) => { console.log(`${n1}, ${n2}`); }; let m333 = (n1, n2) => { console.log(n1 + n2); };

람다 Expression (표현식)

  • 중괄호 {}를 생략
  • return 키워드 생략 (암시적 반환)
  • 한 줄로 표현 가능한 코드만 작성
  • 값을 반환하는 간결한 함수에 주로 사용
// 람다 Expression 예시 let m33 = (n1, n2) => n1 + n2; // 암시적 반환 let k1 = () => 5; // 5를 반환

4.3 람다식 사용 예시 정리

// 기본 익명 함수 let m1 = function() { console.log("m1 호출됨"); }; // 기본 람다식 let m11 = () => { console.log("m11 호출됨"); }; // 매개변수가 있는 람다 Statement let m2 = (n1, n2) => { console.log(`${n1}, ${n2}`); }; // 반환값이 있는 람다 Statement let m3 = (n1, n2) => { return n1 + n2; }; // 람다 Expression (암시적 반환) let m33 = (n1, n2) => n1 + n2; // 람다 Statement (반환값 없음) let m333 = (n1, n2) => { console.log(n1 + n2); }; // 단일 값 반환 람다 Expression let k1 = () => 5; // 단일 값 반환 람다 Statement let k2 = () => { return 5; }; // 값을 반환하지 않는 람다 Statement let k3 = () => { console.log(5); };

5. 람다식의 특징과 장점

  1. 간결한 문법: 함수 선언을 더 짧고 읽기 쉽게 만듭니다.
  1. this 바인딩: 일반 함수와 달리 자신만의 this를 생성하지 않고 외부 스코프의 this를 그대로 사용합니다.
  1. 암시적 반환: 중괄호 없이 한 줄로 작성할 경우 자동으로 값을 반환합니다.
  1. 선택적 괄호: 매개변수가 하나만 있으면 괄호를 생략할 수 있습니다 (예: x => x * x).

6. 람다 Expression vs Statement 정리

구분
람다 Expression
람다 Statement
문법
() =>
() => { 문장들... }
반환
암시적 반환 (return 생략)
명시적 반환 (return 필요)
사용
간단한 계산식, 값 반환
복잡한 로직, 여러 줄 코드
예시
x => x * 2
x => { let y = x * 2; return y; }

7. 중괄호 없는 Statement 람다식 사용 지양

람다식을 사용할 때, 중괄호 {}를 생략하는 것은 **Expression(표현식)**에서만 권장됩니다. 하지만 **Statement(문장)**에서 중괄호 없이 작성하는 것은 문제가 될 수 있습니다.

중괄호 없는 Statement 람다식 문제점

아래와 같이 중괄호 {} 없이 람다식을 작성하면 실행은 되지만, 일부 환경(Dart, TypeScript, 다른 JS 인터프리터 등)에서는 오류가 발생할 수 있습니다.
// Lamda Statement // let m333 = (n1, n2) => console.log(n1+n2); // m333(10,50);
위 코드에서는 console.log(n1 + n2);가 실행되지만, 명확한 표현 방식이 아니기 때문에 사용을 지양하는 것이 좋습니다.

안전한 람다 Statement 작성법

람다 Statement는 반드시 중괄호 {}를 포함하여 작성하는 것이 권장됩니다.
jsx 복사편집 // 올바른 람다 Statement (중괄호 사용) let m333 = (n1, n2) => { console.log(n1 + n2); }; m333(10, 50);
이렇게 작성하면 모든 환경에서 일관된 동작을 보장할 수 있으며, 가독성도 높아집니다.

중괄호 없는 표현은 오직 Expression에서만!

jsx 복사편집 // 올바른 람다 Expression (암시적 반환) let sum = (n1, n2) => n1 + n2; console.log(sum(10, 20)); // 30
즉, 값을 반환하는 경우에만 중괄호 없이 사용하는 것이 좋고, 그렇지 않다면 항상 중괄호를 사용하는 것이 안정적인 코드 스타일입니다.
Share article

sson17