“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
오답 노트
자바스크립트 20문제 중 틀린 문제 오답노트를 작성했습니다.
01. 결과값을 작성하세요
{
if( null ){
console.log("true");
} else {
console.log("false");
}
}
정답 노트
false (0,null,undefined,false)는 flase의 값이 나옵니다.
02. 결과값을 작성하세요
{
let num = 0;
while( num <= 5 ){
num++;
console.log(num);
}
}
오답 노트
실행문 안쪽에 num++가 있어서 num의 값이 0에서 1로 ++ 된 후에 실행문으로 실행됩니다.
정답:1,2,3,4,5
03. 결과값을 작성하세요
{
const str = [100, 200, 300, 400, 500];
str.forEach(function(i){
console.log(i);
});
}
정답 노트
100,200,300,400,500
04. 결과값을 작성하세요
{
const str = [100, 200, 300, 400, 500];
for(let i of str){
console.log(i);
}
}
정답 노트
100,200,300,400,500
05. 결과값을 작성하세요
{
const obj = {
a: 100,
b: 200
};
for(let key in obj) {
console.log(key);
console.log(obj[key]);
}
}
오답 노트
key라는 값을 넣어주면 객체의 값이 아닌 키를 불러옵니다. obj[key]는 key안의 배열값을 불러오는데 반복문 for문의 반복되어서 나오기 기 떄문에 먼저 key의 값 a obj.[key]의 값 100 다음은 b 200으로 불러오게 됩니다.
정답 : a 100, b 200
06. 결과값을 작성하세요
{
let num = 0;
while( true ){
num++;
if( num == 3 ){
continue;
}
if( num > 6 ){
break;
}
console.log(num);
}
}
오답 노트
while은 반복문 입니다. 반복문이 ture일 때 실행이 됩니다. num ++ 로 num이 1이 되면 조건문에 만족하지 않아서 1이 출력되고 다시 반복문으로 돌아가서 num++로 num의 값이 2가 되는데 조건문에 만족하는 조건이 아니므로 그대로 2가 출력됩니다. 다시 반복문으로 돌아가서 num++로 3이 되면 조건문 num==3에 continue라는 조건에 걸려서 continue는 지정된 숫자를 건너뛰기 때문에 3은 출력이 되지 않습니다 그렇게 4,5반복하고 6일때 break에 걸려서 break문은 지정된 숫자 까지 나올 수 있기 때문에 1,2,4,5,6이라는 결과 값이 나오게 됩니다.
정답:1,2,4,5,6
07. 결과값을 작성하세요
{
for(let i=1; i<=5; i++){
console.log(i);
if(i == 3){
break;
}
}
}
정답 노트
1,2,3
08. 결과값을 작성하세요
{
let num = 0;
while (num < 20){
num++;
console.log(num);
if(num == 1){
break;
}
}
}
오답 노트
while반복문으로 num은 0이 출력되는데 20보다 작으므로 실행이 됩니다. num++로 1이 추가되어서 num의 값은 1이 됩니다. 그리고 조건문에 1은 num과 같다면 break가 걸리기 때문에 1이 출력됩니다.
정답:1
09. 결과값을 작성하세요
{
let num = 100;
switch(num){
case 100 :
console.log("100");
break;
case 200 :
console.log("200");
break;
default :
console.log("300");
}
}
10. 결괏값을 작성하시오.
정답 노트
"100"
10. 결과값을 작성하세요
{
func = () => {
const str = "함수가 실행되었습니다.";
return str;
}
console.log(func());
}
정답 노트
"함수가 실행되었습니다."
11. 결과값을 작성하세요
{
let direct = 1;
function gallery(num){
if(num){
if(num == 2) direct++;
} else {
if(num == 1) direct--;
}
}
gallery(2);
console.log(direct);
}
정답 노트
2
12. 결과값을 작성하세요
{
let sum = 0;
for(var i=1; i<=100; i++) {
sum += i;
};
console.log(sum);
}
오답 노트
1부터 100까지의 합을 구하는 실행문 입니다.
정답:5050
13. 결과값을 작성하세요
{
const obj = {
a: 100,
b: 200,
c: "javascript"
}
const { a:_____, b:_____, c:_____ } = obj;
document.write(name1);
document.write(name2);
document.write(name3);
//100
//200
//javascript
}
오답 노트
객체 구조 분해 할당의 문제로 객체의 속성을 가져와서 변수안에 넣어 실행시키는 방법입니다. 따라서 실행문에 name이라는 변수가 들어 가 있으므로 a: name1, b: name2 , c:name3가 됩니다.
정답: name1,name2 ,name3
14. 결과값을 작성하세요
{
const obj = {
a: 100,
b: 200,
c: "javascript"
}
const { a, b, c } = _______;
document.write(a);
document.write(b);
document.write(c);
//100
//200
//javascript
}
정답 노트
obj
15. 결과값을 작성하세요
{
const objA = {
a: 100,
b: 200
}
const objB = {
c: "javascript",
d: "jquery"
}
const spread = {...objA, ...objB}
document.write(spread.a);
document.write(spread.b);
document.write(spread.c);
document.write(spread.d);
}
정답 노트
100,200,"javascript","jquery"
16. 결과값을 작성하세요
{
const char = ["J","A","V","A","S","C","R","I","P","T"];
for(let i=9; i>=0; i--){
console.log(char[i]);
}
}
오답 노트
for문을 잉요해서 char의 [i]값을 구하는 문제 입니다. 하지만 for문안에 i--이므로 ++i와 다르게 거꾸로 배열안의 객체가 실행 됩니다.
정답: "T", "P", "I", "R", "C", "S", "A", "V", "A", "J"
17. 결과값을 작성하세요
{
let a = 1, b = 2, c = 3, result;
result = ++a + b++ + ++c;
console.log(result);
console.log(a);
console.log(b);
console.log(c);
}
정답 노트
8,2,3,4
18. 결과값을 작성하세요
{
let i = 1;
while(i < 5){
console.log(i);
i++;
}
console.log(i);
}
정답 노트
while은 반복문입니다 i의 값이 1로 출력되고 i++로 다시 2로 의 값이 들어가서 i는 2로 나오고 i++로 들어가서 i는 3으로 나오고 또 i++로 4로 들어가서 i는 4로 출력되고 i++값으로 5가 나오게 됩니다. 그런데 i는 5보다 작아서 5는 while문 안에서는 실행되지 못하는데 while문 밖에 실행문이 있으므로 그곳에서 값이 실행이 될 수 있습니다.
정답:1,2,3,4,5
19.결과값을 작성하세요
{
let num = [32, 93, 15, 86, 50];
let sum = 0;
for(let i=0; i > num.length; i++){
sum = sum * i;
}
console.log(sum)
}
정답 노트
0
20.결과값을 작성하세요
{
let a, b, result;
a = 7, b = 4
result = a & b;
console.log(result)
}
정답 노트
비트 연산자 입니다. 비트 연산자가 &일때는 1의 값이 같을 때 1이 나옵니다. 따라서 a에서 7을 2진항으로 바꿔주면 0000 0111이 나옵니다. b에서 4를 2진항으로 바꿔주면 0000 0100이 나옵니다
0000 0111
0000 0100
-----------
0000 0100
이 나오게 됩니다. 그리고 제곱을 이용해서 2의 0승부터 시작해서 2의 1승 2의 2승으로 차례대로 적히는데 2의 2승에 1의 값이 있으므로
2*2는 4라는 정답이 나오게 됩니다.
정답:4