⭕️ Q. foo의 값은 무엇인가요?
var foo = 10 + '20';
❌ Q. 아래 코드의 결과값은 무엇인가요? -> 처음에 true라고 해서 틀림 👀
console.log(0.1 + 0.2 == 0.3);
⭕️ Q. 아래 코드가 동작하게 하기 위해선 어떻게 해야할까요?
add(2, 5); // 7
add(2)(5); // 7
⭕️ Q. 아래 구문의 반환값은 무엇인가요?
"i'm a lasagna hog".split("").reverse().join("");
⭕️ Q. What is the value of window.foo? - window.foo의 값은 무엇인가요?
( window.foo || ( window.foo = "bar" ) );
🔺 Q. 아래 두 alert의 결과값은 무엇인가요? -> 두 번째 alert Hello undefined로 해서 반만 맞음
var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar); // 1
})();
alert(foo + bar); // 2
⭕️ Q. foo.length의 값은 무엇인가요?
var foo = [];
foo.push(1);
foo.push(2);
❌ Q. foo.x의 값은 무엇인가요?
var foo = {n: 1};
var bar = foo;
foo.x = foo = {n: 2};
모든 연산이 끝나고 foo.x를 참조하면, 이때는 {n:2} 영역을 가리키고 있기 때문에 undefined 값을 반환한다. 그러나 bar를 출력해보면 {n:1, x: {n:2}}가 담긴것을 확인할 수 있다. 현재 bar가 참조하고 있는 영역의 x property는 foo가 참조하는 영역을 가리키고 있으므로 foo 객체 할당 연산을 해서 객체를 변환하면 x property는 해당 값을 반환하게된다.
⭕️ Q. 아래 코드의 출력값은 무엇인가요?
console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');
출처
https://www.javascripttutorial.net/javascript-bom/javascript-settimeout/setTimeout with time 0. What does it really mean?
By A Junior, For A Beginner: The Call Stack & Async Javascript
JavaScript setTimeout
⚠️ 평소 지식을 기반으로 하되, 적절히 리서치해서 적는 내용으로 오류가 있을 수 있습니다.