[자바스크립트] 2. 문법

문정준's avatar
Mar 31, 2025
[자바스크립트] 2. 문법
 

1. 변수

  • JavaScript는 변수, 함수들이 모두 레퍼런스 자료형 : 실행 시에 결정됨
    • Interpreter의 특성 : 동적 할당
  • 변수 선언 : let → 변수명 = value; 형태로 선언 후, 실행 시 자동으로 변수 타입을 결정
    • Number
    • String
      • 큰따옴표(””), 작은따옴표(’’), backtick(``) 사용
      • backtick 사용 시 변수를 바인딩할 수 있음 (${변수명}) : 용이하므로 자주 사용
    • bool
    • null
    • undefined
      • 변수명만 선언하고 값을 대입하지 않으면 null이 아닌 undefined 형으로 인식
      • null이라는 값을 직접 대입해야 null형으로 변환됨
// 변수 // 가장 최상단에 적을 수 있는 것들 : 1급 객체 >> 매개변수로 전달이 가능 // 자바의 1급 객체 : 클래스 let n1 = 1; // Number 타입 let n2 = 10.5; let s1 = "문자열"; // String 타입 let s2 = '문자열'; let s3 = `문자열 ${n1}`; let b1 = true; // boolean 타입 (bool) let u1 = null; // null 타입 let u2; // undefined 타입 console.log(n1); console.log(n2); console.log(s1); console.log(s2); console.log(s3); console.log(b1); console.log(u1); console.log(u2);
notion image
 

2. Collection & Object

  • 같은 자료형의 모임 : Collection → 대괄호([])로 묶어서 표현
    • Collection 내부 요소들을 참조할 때 인덱스 (index) 사용
  • Object : Java의 클래스와 비슷
    • 중괄호({}) 사용
    • 자료형은 지정하지 않음
    • 내부 멤버의 값을 넣을 때는 key : value의 형식으로 지정
    • 마지막에 세미콜론(;) 추가
    • ‘오브젝트명.멤버’ 의 형식으로 Object 내 멤버 참조 가능
// 컬렉션, 오브젝트 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]);
notion image
 

3. Function

  • 자바와 다르게, 함수를 단독으로 선언하여 사용 가능
    • 1급 객체의 특징
  • 함수, 매개변수, 리턴값 전부 자료형 선언 필요 없음
    • 레퍼런스 자료형
  • 리턴값을 반환하는 함수는 새 변수에 값을 대입할 수 있음
    • 자바와 동일
// 함수 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);
notion image
 

4. Lambda Function

1. 익명 함수 & Lambda

  • JavaScript에서는 함수명을 생략할 수 있음
    • function() { }의 형태를 익명 함수 (Anonymous Function)이라고 함
  • 이름이 없는 익명 함수를 람다식 (Lambda Function)이라고 함
    • 함수 내의 리턴 형식에 따라 람다식을 부르는 형식이 다름
      • 리턴 값이 없이 바로 실행하는 함수 : Lambda Statement (람다 문장)
      • 리턴 값이 존재하여 변수 등에 담을 수 있는 함수 : Lambda Expression (람다 표현식)
 

2. Lambda Statement & Expression

  • let 변수명 = () ⇒ { return result; } : Lambda Expression (람다 표현식)
  • let 변수명 = () ⇒ { console.log(result); } : Lambda Statement (람다 문장)
    • 리턴값이 없는 함수도 JavaScript에서는 변수 내에 저장할 수 있음
  • let 변수명 = () ⇒ result; : Lambda Expression (람다 표현식)
  • let 변수명 = () ⇒ console.log(result); : Lambda Statement(람다 문장)
    • JavaScript에서 지원하는 문법 : 비추천 (헷갈릴 수 있음)
// 람다 표현식 // function m1() { // console.log("m1 호출됨"); // } // function m2(n1, n2) { // console.log(`${n1}, ${n2}`); // } // function m3() { // return 10; // } // anonymous function (익명 함수) : 사용 X let m1 = function () { console.log("m1 호출됨"); } m1(); // lambda function (function 생략 후 => 추가) : 이름이 없는 익명 함수 let m11 = () => { console.log("m11 호출됨"); } m11(); // lambda statement : has no return (direct execute) // lambda expression : has return // lambda statement let m2 = (n1, n2) => { console.log(`${n1}, ${n2}`); } m2(1, 2); // lambda expression let m3 = (n1, n2) => { return n1 + n2; } let r1 = m3(5, 6); console.log(r1); // lambda expression let m33 = (n1, n2) => n1 + n2; let r2 = m33(1, 5); console.log(r2); // lambda statement let m333 = (n1, n2) => { console.log(n1 + n2) }; let r3 = m333(10, 50);
notion image
Share article

sxias