{ let 변수명; // 변수 선언 let 변수명 = 값; // 변수 선언과 동시에 값 할당 }
{ const 변수명 = 값; // 변수 선언과 동시에 반드시 값을 할당해야 함 }
{ let apple = 3; console.log(apple); // 3 출력 apple = 5; // let 선언 변수는 재할당 허용 console.log(apple); // 5 출력 let apple = 7; // 같은 이름으로 중복 선언을 허용하지 않으므로 오류! const car; // 선언과 동시에 값을 할당하지 않으므로 오류! const carname = "하이브리드카"; console.log(carname); // '하이브리드카' 출력 carname = "디젤카" // const 선언 변수는 불변이므로 오류; } console.log(apple); // 블록 밖이므로 오류! console.log(carname); // 블록 밖이므로 오류!
console.log('사과:' + apple + ', 자동차:' + carname); // 이전 스타일 console.log(`사과: ${apple}, 자동차: ${carname}`); // ES6 스타일(템플릿 리터럴)
const fnPlusNumbers = function (pNum1, pNum2) { return pNum1 + pNum2; }
const fnPlusNumbers = (pNum1, pNum2) => { return pNum1 + pNum2; }
const fnPlusNumbers = (num1, num2) => num1 + num2;
const fnPlusNumbers4 = pNum => pNum + 1;
const fnSayHello = () => '안녕하세요!';
구분 | 동기 처리 방식 | 비동기 처리 방식 |
---|---|---|
실행 순서 | 모든 코드가 위에서 아래 순서로 실행 | 코드들이 독립적으로 실행 |
실행 대기 | 명령을 요청한 후 결과가 나올 때까지 계속 기다림 | 명령을 요청한 후 결과가 나올 때까지 기다리지 않고 다음 작업을 연이어 수행 |
반환 결과를 계속 기다리므로 시간 지연이 큼 | 결과가 완료되면 다시 돌아와 필요한 것을 마무리하는 방식 |
function fnFunctionA(pNumA) { console.log(pNumA); } function fnFunctionB(pNumB, fnCallback) { fnCallback(pNumB); // 매개변수로 받은 함수를 실행하여 비동기 처리의 시작 담당 } fnFunctionB("콜백 함수 실핼!", fnFunctionA);
function fnFunctionB(pNumB, fnCallback) { fnCallback(pNumB); } // 매개변수 전달 시 함수 선언과 정의를 함께 작성함: 비동기 처리의 완료 담당 fnFunctionB("콜백 함수 실핼!", function fnFunctionA(pNumA) { console.log(pNumA); });
var person = { name: 'Lee' }; // 마침표 표기법에 의한 프로퍼티 접근 console.log(person.name); // Lee // 대괄호 표기법에 의한 프로퍼티 접근 console.log(person['name']); // Lee
var person = { name: 'Lee' }; console.log(person[name]); // ReferenceError: name is not defined
* 위 예제에서 ReferenceError가 발생한 이유는 대괄호 연산자 내의 따옴표로 감싸지 않은 이름, 즉 식별자 name을 평가하기 위해 선언된 name을 찾았지만 찾지 못했기 때문이다. * 객체애 존재하지 않는 프로퍼티에 접근하면 undefined를 반환한다. 이때 ReferenceError가 발생하지 않는 데 주의하자.
var person = { name: 'Lee' }; console.log(person.age); // undefined * 프로퍼티 키가 식별자 네이밍 규칙을 준수하지 않는 이름, 즉 자바스크립트에서 사용 가능한 유효한 이름이 아니면 반드시 대괄호 표기법을 사용해야 한다. 단, 프로퍼티 키가 숫자로 이뤄진 문자열인 경우 따옴표를 생략할 수 있다. 그 외의 경우 대괄호 내에 들어가는 프로퍼티 키는 반드시 따옴표로 감싼 문자열이어야 한다는 점을 잊지 말자.