Level 2-2. JavaScript 핵심 개념
Scope - 1
6-1. Scope
let greeting = 'Hello';
function greetSomeone() {
let firstName = 'Josh';
return greeting + ' ' + firstName;
}
greetSomeone(); // => ???
firstName; // => ???
정답: 'Hello Josh' / 에러 발생
6-1. Scope
let greeting = 'Hello';
function greetSomeone() {
let firstName = 'Josh';
return greeting + ' ' + firstName;
}
greetSomeone(); // => ???
firstName; // => ???
정답: 'Hello Josh' / 에러 발생
Scope - 2
6-2. Scope
let name = "Richard";
function showName() {
let name = "Jack"; // 지역 변수
// showName 함수 안에서만 접근 가능
console.log(name); // ???
}
console.log(name); // ???
showName();
console.log(name); // ???
정답: Richard / Jack / Richard
Scope - 3
6-3. Scope
let name = "Richard";
function showName() {
name = "Jack"; // 전역 변수
// 선언(let)이 없기 때문에, 바깥 scope에 있는 name이라는 변수를 가져옵니다
console.log(name); // ???
}
console.log(name); // ??? ①
showName(); ②
console.log(name); // ??? ③
정답: Richard / Jack / Jack
① name = "Jack";는 전역 변수이기 때문에, showName();이 실행되기 전에는 let name = "Richard";을 가져다 쓰지만
② showName();안에서 name을 새롭게 "Jack"으로 할당
③ 새롭게 할당한 변수는 바깥쪽에 있는 let name = "Richard";과도 같기 떄문에 name = "Jack";
Scope - 4
6-4. Scope
for(let i=0; i<5; i++) {
console.log(i); // 다섯번 iteration
}
console.log('final i:', i); // ?
정답:ReferenceError
Scope - 5
6-5. Scope
for(var i=0; i<5; i++) {
console.log(i); // 다섯번 iteration
}
console.log('final i:', i); // ?
정답: 5
Scope - 6
BUT 재선언 관련 에러 메시지는 Chrome 80 버전 이후부터는 표시되지 않습니다. 하지만, 기타 브라우저에서는 에러를 내며 본질적인 작동 원리는 달라지지 않습니다.
전역 범위는 최상위 스코프이기 때문에 어떤 라이브러리(프로그램)이 어떤 변수를 사용할지 모름.
선언 키워드가 없어도 에러를 내지 않으며, 전역 변수로 취급하기 때문에.
use strict는 개발자 콘솔이 아닌 저장된 상태에서만 사용 가능.
Closure
커링은 함수를 생성하는 함수.
return부분은 (키값이 함수인) 객체와 같다고 보면 됨.
counter1은 함수가 담겨있는 객체, 메소드처럼 이용할 수 있음.
privateCounter는 바깥에서 접근X, 함수로 간접적 접근만 가능.
type을 바꾸지 못하게 하기 위해 클로저 모듈 패턴 사용.
재사용성↑, 독립성↑
객체지향 JavaScript
class는 대문자와 일반명사로!
Constructor(생성자) 함수는 return값을 만들지 않는다!
arr은 instance, class는 Array
매개변수
Author And Source
이 문제에 관하여(Level 2-2. JavaScript 핵심 개념), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soheey/Level-2-2.-JavaScript-핵심-개념저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)