1. 자바스크립트 언어의 데이터 타입의 기본형은 00성을 가진다
-> 불변 (변할 수 없는 성질)
2. 자바스크립트 언어는 데이터 타입을 000에 결정한다
-> 런타임
3.
let a = null;
let b;
console.log(a == b);
// true
📍풀이
a : null (빈 값)
b : undefined (정의 되지 않음)
"==" 과 "===" 차이
"=="은 값만 평가한다
"==="은 값과 type 둘을 동시에 평가한다.
a == b -> 둘 다 값이 없음 -> True
a === b -> 둘 다 값이 없지만 type이 서로 다름 -> False
4.
let a = 5;
let b = a;
let o1 = { a: b };
let o2 = o1;
a = 1;
o2.a = 3;
console.log(a + b + o1.a + o2.a);
// 12
📍풀이
5.
// 전역 스코프
var a = -1;
let b = 2;
function f() { // 함수 스코프
var a = 3;
let b = 4;
{ // 블록 스코프
var a = 5;
let b = 6;
}
console.log(a + b);
}
f();
// 9
📍풀이
var는 값이 업데이트 될떄마다 계속 업데이트 된다
let은 블록 스코프에서만 유지됨. -> 외부로 나오면 블록스코프에서 선언한 값은 사라진다.
console.log (a+b)가 블록 스코프 밖에 있기 때문에 let b = 6; 유효하지 않게 된다.
결국
a = 5 (블록 스코프 값)
b = 4 (함수 스코프 값)
6.
let a = 1;
function f1() {
let a = 3;
return f2();
}
function f2() {
return a;
}
console.log(f1());
// 1
📍풀이
a = 1인 상태에서 f1( )을 실행했다. a = 3을 선언하였고, f2( )를 호출했다. f2( ) 실행 시 함수 내부에 내부 스코프가 없으므로 가장 가까운 a인 전역변수 a를 받게 된다.
그렇다면 만약 f2( )에 변수가 선언 되어있다면? 해당 변수의 값이 답이 된다.
7.
var a = 1;
function f1() {
return 3;
}
var f2 = function () {
return 5;
};
console.log(a + f1() + f2());
var a = 2;
function f1() {
return 4;
}
var f2 = function () {
return 6;
};
// 10
📍풀이
전역변수 a = 1
function f1( ) -> 3
var f2 -> function() 실행 -> 5
function f1() -> 4
1 + 4 + 5 = 10
8.
var a = 1;
global.a = 3;
const obj = {
a: 5,
f: function () {
return this.a;
},
};
let f = obj.f;
console.log(f());
// 3
📍풀이
전역 스코프에서 var a =1 로 선언하였다. 하지만 global.a = 3이기 때문에 전역 객체 global의 속성 a =3이 새로 생긴 것이다. 우선순위로 봤을때 global.a 가 위에 있다.
const obj를 선언한다. (const는 상수로 한 번 지정된 값은 변하지 않는다.)
obj.a는 5이다.
obj.f는 this.a값인데, function( )안에 내부 스코프가 없기 때문에 가장 가까운 global.a값이 반환된다.
let f = obj.f = global.a -> 3이 된다.
9.
global.a = 1;
const obj = {
a: 2,
};
function f1(a, b, c) {
return this.a + b + c;
}
const f2 = f1.bind(obj, 3, 5, 7);
console.log(f2(4, 6, 8));
// 14
📍풀이
10.
const arr = [1, 2, 3];
const r = arr.map((e) => e - 1).reduce((acc, e, i) => (acc += e * i));
console.log(r);
// 5
📍풀이
a
'Programming > JavaScript' 카테고리의 다른 글
Javascript 데이터 할당 (기본형, 참조형, 중첩 객체도) (0) | 2024.06.11 |
---|---|
중간 퀴즈 2 풀이 (0) | 2024.06.11 |
웹시스템개발 기말고사 핵심 정리 -2 디자인 패턴 (0) | 2024.06.10 |
웹시스템개발 기말고사 핵심 정리 -1 (0) | 2024.06.10 |
코어 자바스크립트 5장 클로저 (0) | 2024.04.23 |