문제 1. 다음 코드의 실행결과는?
function Cat(name, age){
this.name = name;
this.age = age;
}
const tabby1 = Cat('nana', 7);
console.log(tabby1.name)
'nana'가 출력된다.
빈 문자열이 출력된다.
undefined가 출력된다.
오류가 발생한다.
문제 2. 다음 코드의 실행결과는?
(function(name){
console.log(`hello ${name}`)
})('roto')
함수가 선언되기만 하고 아무 일도 일어나지 않는다.
'hello'만 출력이 된다.
'hello roto'가 출력된다.
오류가 발생한다.
문제 3. 다음 코드의 실행결과는?
var idiots = {
name: 'idiots',
genre: 'punk rock',
members: {
roto: {
memberName: 'roto',
play: function() {
console.log(`band ${this.name} ${this.memberName} play start`)
}
}
}
}
idiots.members.roto.play()
문제 4. 다음 코드를 실행하면 오류가 발생합니다.
오류가 발생하는 원인은 무엇이고
어떻게 해결할 수 있을까요?
function RockBand(members) {
this.members = members;
this.perform = function() {
setTimeout(function() {
this.members.forEach(function(member){
member.perform();
})
}, 1000)
}
}
var theOralCigarettes = new RockBand([
{
name: 'takuya',
perform: function() {
console.log('Sing: a e u i a e u i')
}
}
]);
theOralCigarettes.perform();
문제 5. 다음 코드를 실행하면 숫자가 0부터 4까지 출력이 되지 않고 undefined가 다섯번 출력이
됩니다. 그 이유는 무엇일까요?
const numbers = [0, 1, 2, 3, 4]
for(var i = 0; i < numbers.length; i++) {
setTimeout(function(){
console.log(`[${i}] number ${numbers[i]} turn!`)
}, i * 1000)
}
문제 6. var, let, const의 차이는 무엇인가요?
문제 7. 클로져는 무엇인가요?