자바스크립트 쪽지 시험(4)
길라잡이
- 수업시간에 배운 자바스크립트를 간단하게 테스트합니다. 제대로 배웠는지 간단하게 테스해보세요!
1. 결괏값을 작성하시오.
{
const str = "javascript";
const text = str.indexOf("a");
const text2 = str.lastIndexOf("a");
const text3 = str.includes("a");
console.log(text);
console.log(text2);
console.log(text3);
}
답 확인하기
1, 3, true
2. 다음의 결괏값을 보고 빈칸을 채우시오.
{
function func(){
document.write("함수2가 실행되었습니다.");
}
function callback(str){
document.write("함수1가 실행되었습니다.");
_______();
}
callback(func);
//함수1가 실행되었습니다.
//함수2가 실행되었습니다.
}
답 확인하기
str
3. 결괏값을 작성하시오.
{
function func(a, b){
console.log(arguments[0]);
console.log(arguments[1]);
}
func("1", "2");
}
답 확인하기
1, 2
4. 결괏값을 작성하시오.
{
function func(num, name, word){
this.num = num;
this.name = name;
this.word = word;
}
func.prototype = {
result1 : function(){
console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
},
result2 : function(){
console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
},
result3 : function(){
console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
}
}
const info1 = new func("1", "함수", "실행");
const info2 = new func("2", "자바스크립트", "실행");
const info3 = new func("3", "제이쿼리", "실행");
info1.result1();
info2.result2();
}
답 확인하기
1. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
5. 결괏값을 작성하시오.
{
function func(num, name, word){
this.num = num;
this.name = name;
this.word = word;
}
func.prototype.result = function(){
console.log(this.num + ". " + this.name + "가 "+ this.word + "되었습니다.");
}
const info1 = new func("1", "함수", "실행");
const info2 = new func("2", "자바스크립트", "실행");
const info3 = new func("3", "제이쿼리", "실행");
info1.result();
}
답 확인하기
1. 함수가 실행되었습니다.
6. 결괏값을 작성하시오.
{
function func(index){
console.log("함수가 실행되었습니다." + index);
}
function callback(num){
for( let i=1; i<=1; i++){
num(i);
}
}
callback(func);
}
답 확인하기
함수가 실행되었습니다.1
7. 결괏값을 작성하시오.
{
let num = 1;
do {
num++;
console.log("실행되었습니다.");
} while (num <= 5);
}
답 확인하기
실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다.
8. 결괏값을 작성하시오.
{
const arr = [100, 200, 300, 400, 500];
const text1 = arr.join("*");
const text2 = arr.join("-");
const text3 = arr.join("");
const text4 = arr.join(" ");
console.log(text1);
console.log(text2);
console.log(text3);
console.log(text4);
}
답 확인하기
100*200*300*400*500
100-200-300-400-500-600
100200300400500600
100 200 300 400 500
9. 다음을 최대한 짧게 약식으로 표현하시오.
{
function func(str){
return str;
}
func("함수가 실행되었습니다.")
}
답 확인하기
{
func = str => str;
func("함수가 실행되었습니다.")
}
10. 다음을 결과값을 작성하시오.
{
function func(){
let i = 10, j = 10, k = 30;
i /= j;
j -= i;
k %= j;
console.log(i);
console.log(j);
console.log(k);
}
func();
}
답 확인하기
1, 9, 3
11. 다음을 결과값을 작성하시오.
{
let k = 0;
let temp;
for(let i=0; i<=3; i++){
temp = k;
k++;
console.log(temp + "번");
}
}
답 확인하기
0번, 1번, 2번, 3번
12. 다음을 결과값을 작성하시오.
{
let num1 = 3;
let num2 = 7;
if(++num1 < 5 || ++num2 > 8){
console.log(num1);
}
console.log(num2);
}
답 확인하기
4, 7
13. 다음을 결과값을 작성하시오.
{
let num = [1, 5, 1, 2, 7, 5];
for(let i=0; i<6; i++){
if((i+1) % 2 == 0){
console.log(num[i]);
}
}
}
답 확인하기
5, 2, 5
14. 다음을 결과값을 작성하시오.
{
let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
for(let i=9; i>=0; i--){
switch(num[i] % 2){
case 1:
console.log(num[i]);
break;
default:
console.log("*");
}
}
}
답 확인하기
9*7*5*3*1*
15. 다음을 결과값을 작성하시오.
{
let cnt = 0;
let sum = 0;
for(let i=0; i<=7; i++){
if(i%2 == 1){
cnt++;
sum = sum + i;
}
}
console.log(cnt + ", "+sum);
}
답 확인하기
4, 16
16. 다음을 결과값을 작성하시오.
{
let data = [70, 80, 75, 60, 90];
let best = 1;
let score = 0;
for(let i=0; i<data.length; i++){
if(data[i]>80) {
best++;
}
if(score < data[i]) {
score = data[i];
}
}
console.log(best, score);
}
답 확인하기
2, 90
17. 다음을 결과값을 작성하시오.
{
let a, b, result;
a = 7, b = 4
result = a & b;
console.log(result);
}
답 확인하기
4
18. 다음을 결과값을 작성하시오.
{
function solution(a, b, c){
let answer="YES", max;
let tot = a + b + c;
if(a > b) max = a;
else max = b;
if(c > max) max = c;
if(tot-max <= max) answer = "NO";
return answer;
}
console.log(solution(13, 33, 17));
}
답 확인하기
NO
19. 다음을 결과값을 작성하시오.
{
function solution(a, b, c){
let answer;
if(a < b) answer = a;
else answer = b;
if(c < answer) answer = c;
return answer;
}
console.log(solution(2, 5, 1));
}
답 확인하기
1
20. 다음을 결과값을 작성하시오.
{
function solution(day, arr){
let answer = 0;
for(let x of arr){
if(x % 10 == day) answer++;
}
return answer;
}
arr = [25, 23, 11, 47, 53, 17, 33];
console.log(solution(3, arr));
}
답 확인하기
3
오답노트
총 20문제 중 틀린 문제는 7문제 65점입니다...
커트라인 70점.... 토요일 보충수업..ㅠㅠ
틀린 문제는 6번, 7번, 10번, 11번, 13번, 14번, 19번
6. 결괏값을 작성하시오.
{
function func(index){
console.log("함수가 실행되었습니다." + index);
}
function callback(num){
for( let i=1; i<=1; i++){
num(i);
}
}
callback(func);
}
- 문제 풀이
1) callback(func) 실행문을 먼저 실행시켜줍니다.
2) callback 함수의 num을 계산을 해주는데 for문의 조건문으로 계산을 했을 때 값은 1이 나옵니다.
3) 위의 함수로 이동해서 callback 함수의 나온 값을 index에 대입해서 실행문을 실행시켜줍니다.
- 답
함수가 실행되었습니다.1
7. 결괏값을 작성하시오.
{
let num = 1;
do {
num++;
console.log("실행되었습니다.");
} while (num <= 5);
}
- 문제 풀이
1) 변수 num의 값이 1로 저장되어있습니다.
2) do while문으로 값을 실행해줍니다.
3) num++ 연산자로 값을 계산을 하고 console.log( ) 실행문을 실행시킵니다.
4) num++ 계산된 값을 while문의 조건식에 true인지, false인지 확인하고 반복문이므로 true이면 계속 실행하고, false이면 실행을 멈춥니다.
5) 그러므로 num의 값이 1부터 5이므로 실행문을 5번 실행시켜줍니다.
- 답
실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다.
10. 다음을 결과값을 작성하시오.
{
function func(){
let i = 10, j = 10, k = 30;
i /= j;
j -= i;
k %= j;
console.log(i);
console.log(j);
console.log(k);
}
func();
}
- 문제 풀이
1) 변수 i = 10, j = 10, k = 30의 값이 있습니다.
2) 변수의 값은 변경을 시킬 수 있습니다.
3) i /= j, j -= i, k %= j의 식이 있습니다.
4) 첫번째 식이 입력되고 변경된 i의 값이 두번째 식에 입력되어서 설정됩니다.
5) 첫번째 식은 10 /= 10 이므로 i는 1, 두번째 식은 10 -= 1 이므로 j는 9, 세번째 식은 30 %= 9 이므로 k는 3입니다.
6) 실행문을 실행시켜줍니다.
- 답
실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다.
11. 다음을 결과값을 작성하시오.
{
let k = 0;
let temp;
for(let i=0; i<=3; i++){
temp = k;
k++;
console.log(temp + "번");
}
}
- 문제 풀이
1) 변수 k와 변수 temp가 있습니다.
2) for문을 사용해서 반복문으로 실행시켜줍니다.
3) 처음 시작이 0이므로 temp는 0으로 되고 k++ 연산자로 인해 k의 값은 1이됩니다.
4) 실행문 console.log(temp + "번");으로 인해 0번이 실행되고 반복문이므로 조건이 맞을때까지 실행되니 3까지 실행됩니다.
- 답
0번, 1번, 2번, 3번
13. 다음을 결과값을 작성하시오.
{
let num = [1, 5, 1, 2, 7, 5];
for(let i=0; i<6; i++){
if((i+1) % 2 == 0){
console.log(num[i]);
}
}
}
- 문제 풀이
1) 변수 num의 배열이 있습니다.
2) for문을 사용해서 반복문으로 실행시켜줍니다.
3) if문의 i는 배열의 index 값을 가져오므로 조건문이 짝수일때 if문이 실행이됩니다.
4) 실행문에는 num[i]이므로 배열의 element 값을 가져옵니다.
5) 따라서 조건에 맞는 index 값이 1, 3, 5 이므로 그 위치의 element 값은 5, 2, 5 입니다.
- 답
5, 2, 5
14. 다음을 결과값을 작성하시오.
{
let num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
for(let i=9; i>=0; i--){
switch(num[i] % 2){
case 1:
console.log(num[i]);
break;
default:
console.log("*");
}
}
}
- 문제 풀이
1) 변수 num의 배열이 있습니다.
2) for문과 switch문을 사용해서 반복문으로 실행시켜줍니다.
3) if문의 num[i]는 배열의 element 값을 가져오므로 조건문이 case 1이므로 홀수일 때 case 1의 실행문이 실행됩니다. 아닐 경우 deafult의 실행문이 실행됩니다.
- 답
9*7*5*3*1*
19. 다음을 결과값을 작성하시오.
{
function solution(a, b, c){
let answer;
if(a < b) answer = a;
else answer = b;
if(c < answer) answer = c;
return answer;
}
console.log(solution(2, 5, 1));
}
- 문제 풀이
1) 매개 변수로 a, b, c 의 값을 가져옵니다.
2) 변수 answer이 저장되어있습니다.
3) if문의 a < b의 조건이 맞으면 a값, 아니면 b의 값을 가져옵니다. 조건이 맞으므로 answer 값은 a의 값인 2가 저장됩니다.
4) if문의 c < answer 의 조건이 맞으면 c값을 가져옵니다. 조건이 맞으므로 answer 값은 c의 값인 1로 변경됩니다.
- 답
1
참고
https://webstoryboy.co.kr/1862