'use strict';
let hasDriversLicense = false;
const passTest = true;
if (passTest) hasDriverLicense = true;
if (hasDriversLicense) console.log('I can drive');
코드 맨 앞에 'use strict';를 사용해서 적용
버그를 방지하여 조금 더 안전한 코드를 작성할 수 있는 모드이다.
실행시 발생하는 에러 메시지로 ReferenceError, 예약어 사용 등으로 인한 SyntaxError를 빨리 캐치할 수 있다.
함수(Functions)
함수 선언식(Function Declarations)
function logger() {
console.log('My name is Jonas');
}
// calling / running / invoking function
logger();
const appleJuice = fruitProcessor(5, 0); // 선언되기 이전에도 콜링할 수 있음
function fruitProcessor(apples, oranges) {
console.log(apples, oranges);
const juice = `Juice with ${apples} apples and ${oranges} oranges`;
return juice;
}
console.log(appleJuice);
console.log(fruitProcessor(5, 0));
특이하게도 함수 선언식으로 선언된 함수는 선언되기 이전에도 사용할 수 있다.
함수 표현식(Functions Expressions)
// Function declaration
function calcAge1(birthYear) {
return 2037 - birthYear;
}
const age1 = calcAge1(1991)
// Function expression
const calcAge2 = function (birthYear) {
return 2037 - birthYear;
} // Anonymous Function
const age2 = calcAge2(1991);
console.log(age1, age2)
파이썬과 마찬가지로 자바스크립트에서는 함수가 일급 객체(first-class object)이므로 변수에 담거나 함수의 파라미터로 활용할 수 있다.
JS의 Function expression은 익명함수 형태로 변수에 담을 수 있다는 점에서 파이썬의 람다 표현식과 같다고 보면 될 듯하다.