JS Complete (1)

yoneeki·2022년 12월 5일
0

JS_Complete

목록 보기
1/13

JavaScript

is

A High-level(no need to worry about stuff like memory management), Object-oriented(based on objects, for storing most kinds of data), Multi-paradigm(can be used to different styles of programming) Programming Language.

Variables, Operators

  • const sentenceNew = I am ${firstName} ${lastName} and ${year - birthYear} years old ${job}
    // 변수를 하나하나 따옴표로 연결하는 것보다 이 방법이 간편
    // 여기서는 backticks가 안 보이는데 이런 문장을 쓸 때는 백틱으로 따옴표를 갈음해야 한다. 맥북에서는 옵션+원화(₩) 를 동시에 타이핑하여 쓸 수 있다.

Statements & Expression

  • 선언식 (Declaration) : 값을 할당함
  • 표현식 (Expression) : 값을 생성한다
  • 명령문 (Statement) : 어떤 action을 취하지만 값을 생성하지는 않는다. ex) 변수선언문, 함수선언문, 할당문, 조건문, 반복문
  • 즉 expression은 statement의 일부이다

var & let & const

  • var : 점점 쓰지 않는 추세
    // 스코프 문제, 중복 선언으로 인한 로직 붕괴 등
    // 다만 높은 유연도로 자유로운 개발 가능
  • let : 중복 선언 불가능, 재할당 가능 - 변수
  • const : 중복 선언 불가능, 재할당 불가능 - 상수
  • 하지만 const 에 Object가 할당되었을 때 Object의 key-value쌍을 수정할 수 있다는 이유로 const에 값이 재할당 가능하다는 말이 있는데, 이는 사실이 아니다. const에는 Object의 주소가 할당된다. Object 내부의 key-value 값이 바인딩 된 것이 아니라 Object의 주소가 const에 바인딩된 것이다.

Arrow Function

  • a specific form of function expression that is shorter and therefore faster to write.
  • this keyword와 argument objects를 쓸 수 없다.
// Function Expression
const calcAge2 = function(birthYear) {
	return 2037 - birthYear;
}
// Arrow Function - one parameter
// No return statement
const calcAge3 = birthYear => 2037 - birthYear;
const age3 = calcAge3(1991);
console.log(age3); // 46
// Arrow Function - multiple parameters 1
// have to use return statement
const yearsUntilRetirement = birthYear => {
	const age = 2037 - birthYear;
    const retirement = 65 - age;
    return retirement;
}
const retire = yearsUntilRetirement(1991);
console.log(retire); // 19
// Arrow Function - multiple parameters 2
// have to use return statement
const yearsUntilRetirement = (birthYear, firstName) => {
	const age = 2037 - birthYear;
    const retirement = 65 - age;
    // return retirement;
    return `${firstName} retires in ${retirement} years.`;
}
profile
Working Abroad ...

0개의 댓글