내일배움캠프[4기_Reac트랙]/TIL

함수 함수는 객체타입의 값이다. 따라서 식별자를 붙일 수 있다. 함수의 정의는 함수 선언문, 함수 표현식, Function생성자 함수, 화살표 함수를 통해 가능하다. 함수는 객체지만 일반객체와는 다르다. 일반 객체는 호출할 수 없지만 함수는 호출할 수 있다. 또한 일반 객체에는 없는 함수 객체만의 고유한 프로퍼티를 갖는다. 함수이름은 함수 몸체 내에서만 참조할 수 있는 식별자다. 함수표현식은 익명함수로 작성할 수 있지만, 함수 선언문은 반드시 기명함수로 작성해야한다. 기명함수는 자바스크립트엔진에 의해 문맥에 따라 함수표현식으로도, 함수선언문으로도 정의될 수 있다. 기명함수가 값으로 취급받는 문맥(할당연산자 우측에 위치, 그룹 연산자 내에 위치..etc)에서는 함수 리터럴로 기명함수가 단독으로 쓰인 상황..
타입 단언(Type Assertion) 단언: 주저하지 아니하고 딱 잘라 말함 any와 같이 생각없이 남발하면 좋지않은 문법이다. 단언 키워드 : as Non-null 단언 연산자 : ! -> "null 혹은 undefined가 반드시 아니다!" 할당 단언 연산자: ! -> "할당을 한거야!" // 1) const el = document.querySelector("body"); el.textContent = "Hello world?!"; documnet.queryselector라는 메서드는 선택자로 요소를 찾지 못하면, null데이터를 반환한다. HTML내에 body태그는 반드시 있지만, 타입스크립트는 선택된 태그가 body태그인지, 있을수도 없을수도있는 선택자인지 모르므로 null값이 나올수 있다고 ..
1번 퀴즈 *참고 사항 거듭제곱 연산자(**)는 왼쪽 피연산자를 밑, 오른쪽 피연산자를 지수로 한 값을 구합니다. [BigInt]()도 피연산자로 받을 수 있다는 점을 제외하면 [Math.pow()]()와 같습니다. 다음 코드의 출력값을 서술하시오. let square = { side: 10, getSquareArea() { return this.side ** 2; }, }; console.log(square.getSquareArea()); 정답 정답: 100가 출력됩니다. 메서드 내부에서 사용한 this 키워드는 객체 자신을 가리키는 참조변수입니다. 즉, 위의 코드에서 this는 square라는 객체자신을 가리킵니다. 또한 ES6에서는 메서드를 정의할 때 function 키워드를 생략한 축약 표현을 사..
1번 퀴즈 다음 코드의 출력값을 서술하시오. let x = 10; x.toString(); console.log(typeof x, x); 정답 정답: ‘number 10’이 출력됩니다. 명시적 타입 변환이나 암묵적 타입 변환이 기존 원시 값(위 예제의 경우 x 변수의 값)을 직접 변경하는 것이 아닙니다. 원시 값은 변경 불가능한 값immutable value이므로 변경할 수 없으며, 타입 변환이란 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것입니다. 또한 이렇게 만들어진 새로운 타입의 값은 단 한번 사용하고 버려집니다. 참고 페이지(p.109) 2번 퀴즈 다음 코드의 출력값을 차례대로 서술하시오. console.log(1 % "1"); console.log(1 + "1"); conso..
8장 제어문 1번 퀴즈 다음 코드의 출력값을 서술하시오. let feel; let feeling; switch (feel) { default: feeling = "Invalid feeling"; case 1: feeling = "happy"; case 2: feeling = "sad"; break; case 3: feeling = "gloomy"; } console.log(feeling); 정답 정답: ‘sad’가 출력됩니다. default문은 보통 switch문의 맨 마지막에 위치하므로, default문이 종료됨과 동시에 switch문이 종료됩니다. 따라서 default문에는 break문을 생량하는 것이 일반적이지만, default문이 switch문의 맨 마지막에 위치하지않는다면, 상황에 따라 defa..
6장 데이터 타입 1번 퀴즈 다음코드의 ‘+’연산자의 쓰임새를 차례대로 서술하시오. (총 6개의 +연산자의 쓰임을 모두 언급할 것) [덧셈연산자 or 문자열 연결 연산자] const foo = 'Okky' console.log(1 + 4 + foo); // 5Okky console.log(foo + 1 + 4); // Okky14 console.log(1 + 4 + "foo"); // 5foo 정답 console.log(1 + 4 + foo)에서의 ‘+’연산자는 차례대로 덧셈연산자, 문자열연결 연산자로 쓰였습니다. console.log(foo + 1 + 4)에서의 ‘+’연산자는 모두 문자열연결 연산자로 쓰였습니다. console.log(1 + 4 + "foo")에서의 ‘+’연산자는 차례대로 덧셈연산자, ..
1번 퀴즈 다음 코드는 연산이 없이 단순히 배열을 나타낸 코드이므로 표현식이 아닐것입니다. [O / X] [1, 2, 3] 정답 정답은 X입니다. 연산이 이루어지지 않더라도 값으로 평가될 수 있는 리터럴은 표현식이 맞습니다. 2번 퀴즈 표현식은 표현식을 평가한 값과 완전히 일치합니다. 따라서 같은 console.log값을 출력할 것입니다. [O / X] var foo = 100; console.log(foo) var foo = x = 100; console.log(foo) 정답 정답은 O입니다. 3번 퀴즈 문(Statement)은 표현식의 상위집합이다. [O / X] 정답 정답은 O입니다. 문(Statement)은 프로그램의 의 기본단위이자 최소단위이며 표현식인 문과 표현식이 아닌 문으로 나뉩니다. 따라..
let과 const는 호이스팅 될까? let 또는 const가 호이스팅 되는지 여부를 알아보기 전에 호이스팅과 Temporal Dead Zone(TDZ)이란 개념에 대해 알아보겠다. Hoisting let 또는 const가 호이스팅 되는지 여부를 알아보기 전에 호이스팅과 Temporal Dead Zone(TDZ)이란 개념에 대해 알아보겠다. 호이스팅은 말 그대로 끌어올려진다는 의미를 가진다. 스코프 안의 어디에서든 변수 선언은 최상위에서 선언된 것과 동등하다. 아래 예제에서 출력되는 x는 outer scope가 아닌 undefined이다. var x = 'outer scope';(function() { console.log(x); // undefined var x = 'inner scope'; }());..
ecoEarth
'내일배움캠프[4기_Reac트랙]/TIL' 카테고리의 글 목록