오늘은 학원에서 시험을 봤어요 같이 풀어봐요 !
01. 결괏값을 작성하시오.
{
(function(){
console.log("함수가 실행되었습니다.");
})();
}
즉시 실행 함수에 관한걸 물어보네요 !
function(){} 을 ()로 한번 감으면 스크립트 로딩시 즉시 실행되요 !
02. 결괏값을 작성하시오.
{
function func(str = "함수가 실행되었습니다."){
document.write(str);
}
func();
}
선언적 함수를 실행시키는거에요 !
03. 결괏값을 작성하시오.
{
let sum = 0;
for(var i=1; i<=10; i+=2) {
sum += i;
};
document.write(sum);
}
i가 2씩 증가하고있군요
sum += 구문은 sum = sum + i 처럼 증가하구있구요
i 값은 1, 3, 5, 7, 9 이므로
sum의 최종값은 25
04. 다음의 결괏값을 보고 빈칸을 작성하시오.
{
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타입을 const = {a, b,c}에 넣어주는 거에요
그래서 답은 obj
05. 다음의 결괏값을 보고 빈칸을 작성하시오.
{
const objA = {
a: 100,
b: 200
}
const objB = {
c: "javascript",
d: "jquery"
}
const spread = {______, ______}
document.write(spread.a);
document.write(spread.b);
document.write(spread.c);
document.write(spread.d);
//100
//200
//javascript
//jquery
}
펼침연산자에 관한걸 물어보고 있군요 !
...objA을 할경우 100 , 200 으로 출력이 되요
const spread = ( ...objA, ...objB ) 가 답이에요 !
06. 다음의 결괏값이 나오도록 보기에서 빈칸에 해당되는 것을 모두 고르시오(틀림ㅜ)
{
if( _____ ){
document.write("조건문이 실행되었습니다.(true)");
} else {
document.write("조건문이 실행되었습니다.(false)");
}
//document.write("조건문이 실행되었습니다.(false)");
//보기
//true, false, 1, "1", "", 0, null, undefined, [], {}
}
true 인것만 확실하게 외워볼게요
10 '1'
{ [ ] }
true
"abc"
이렇게 외워요 다음엔 틀리지 말길 !
07. 다음의 if문은 삼항 연산자로 변경하시오.
{
if( num == 100 ){
document.write("true");
} else {
document.write("false");
}
}
(num == 100) ? document.write("true") : document.write("false")
이렇게 표현할수 있어요 ! 평소에 3항연산자를 자주 썻다면 쉬웠겠죠 ?
08. 다음의 결괏값을 작성하시오!
{
for(var i=1; i<=1; i++){
document.write(i);
for(var j=1; j<=5; j++){
document.write(j);
}
}
}
for문안에 i <=1 이라는 함정이 있는 문제에요 !
i = 1 일때 1번 실행되고
for문안에 for문은 정상 실행되어서
112345가 출력되요
09. 다음의 결괏값을 보고 빈칸을 작성하시오!
{
const num = [100, 200, 300, 400, 500];
for(let i=0; i<num.length; i++){
document.write(_______);
}
//100 200 300 400 500
}
for문안에 배열을 순차적으로 불러오는 문제에요
num[i] 를 통해 i값이 순차적으로 커질때
값이 100 200 300 400 500출력이 된답니다 !
10. 다음의 결괏값을 보고 빈칸을 작성하시오!
{
const num = [100, 200, 300, 400, 500];
num.forEach(function(el){
document.write(________);
});
//100 200 300 400 500
}
forEach문은
forEach( 값, 순서(키))를 반환해요 !
그래서 el을 적으면 값들을 순차적으로 반환하구요
숩다수워
11. 다음을 보고 리턴값을 생략하여 한줄로 표현하시오!
{
const func = str => {
return str;
}
}
const func = str => str 로 표현할수있어요 !
func = str => str 로도 표현가능 ! (선언함수로는 요렇게)
12. 다음의 결괏값을 보고 빈 칸을 채우시오.
{
const num = [100, 200, 300, 400, 500];
for(let index of _____ ){
document.write(index);
}
//결과값
//100 200 300 400 500
}
포인키~ 포오브벨~ 이렇게 외웠어요 !
for ( let i in num) >> in이 들어가서 key 즉 순서반환
for ( let i of num) >> in이 들어가서 of 즉 value 값 반환
답은 num였네요
13. 다음의 결괏값을 작성하시오.
{
function func(){
let i = 5, j = 4, k = 1, l, m;
l = i > 5 || j != 0;
m = j <= 4 && k < 1;
document.write(l);
document.write(m);
}
func();
}
l 과 m 의 값이 true 인지 false 인지 구분하는 문제에요
l 과 m 의 값을 && 과 || 로 and 인지 or인지 확인하여
true 인지 false 인지 확인하는 문제였습니다!
14. 다음의 결괏값을 작성하시오.(틀림 ㅜㅜ)
{
const arr = [100, 200, 300, 400, 500];
const text = arr.push(600);
document.write(arr);
const arr2 = [100, 200, 300, 400, 500];
const text2 = arr2.unshift(600);
document.write(arr2);
}
배열의 메서드가 어떻게 실행되는지 나타낸 글이에요 !
구문 | 결과 | 설명 | |
push() | const arrNum1 = [100, 200, 300, 400]; const arrPush1 = arrNum1.push(500); console.log(arrNum1); |
(5) [100, 200, 300, 400, 500] | 마지막요소에 추가! |
pop() | const arrNum2 =[100, 200, 300, 400, 500]; const arrPush2 = arrNum2.pop(); console.log(arrNum2); |
(4) [100, 200, 300, 400] | 마지막요소를 삭제 ! |
unshift() | const arrNum1 = [100, 200, 300, 400]; const arrPush1 = arrNum1.unshift(600); console.log(arrNum1); |
(5) [600, 100, 200, 300, 400) | unshift() 메서드는 배열 처음 요소에 요소를 추가 |
shift() | const arrNum2 = [100, 200, 300, 400]; const arrPush2 = arrNum2.shift(); console.log(arrNum2); |
(3) [200, 300, 400] | shift() 메서드는 배열 처음 요소를 삭제 |
15. 다음의 결괏값을 작성하시오.
{
const obj = {
a: 100,
b: 200
};
for(let key in obj) {
console.log(key);
}
}
포인키~ 포오브벨~ 이렇게 외웠어요 !
for ( let i in num) >> in이 들어가서 key 즉 순서반환
for ( let i of num) >> in이 들어가서 of 즉 value 값 반환
즉 a , b 를 반환해요
16. 다음의 결괏값을 작성하시오.
{
let num = 0;
while(false){
num++;
if( num == 3 ){
continue;
}
if( num > 6 ){
break;
}
}
console.log(num);
}
while(false)이기 때문에 while문이 동작 하지 않고 num = 0 이므로 0을 출력해요 !
17. 다음의 결괏값을 작성하시오.
{
let a, b, result;
a = 7, b = 4
result = a & b;
console.log(result, a, b)
}
논리연산자 & 는 2진수로 표현했을때 같은위치의 같은 값만 출력합니다.
7은 2진수로 111
4는 2진수로 100
7 & 4 는 100 >> 이값은 10진수 4입니다.
그래서 4 7 4 가 답이였네요 !
18. 다음의 결괏값을 작성하시오.
{
let a = 1, b = 2, c = 3, result;
result = ++a + b++ + ++c;
console.log(result);
console.log(a);
console.log(b+c);
console.log(c);
}
전치 후치 연산자에 대해 물어보고있네요
++a 는
result = ++a << 실행전에 값을 증가시키고
b++ 은
result = ++a + b++ ; 을 실행하고 나서 증가시켜요
따라서
result = 2 + 2 + 4 ; >>> 8
a = 2 , b = 3 , c = 4 ;
이에요 !
19. 다음의 결괏값을 작성하시오.
{
let data = [70, 80, 75, 60, 90];
let best = 0;
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)
}
for문의 안에 조건을 하나씩 뜯어보면서 실행해보면 쉽게 답이 나왕
data[i] > 80 일때
best++ ; best값을 1증가
score < data[i] 일때
score = data[i] 일 경우는
초기값 0 인 score 이므로 data[i]의 값이 i가 커질때마다
배열안의 값을 반환 해주는뎅
그 값이 score 값보다 클경우에 score 값을 갱신 시켜줘요
가장큰 수만 남겠죠 ?
그래서 90 이라는 숫자가 score에 들어가요 !
20. 다음의 결괏값을 작성하시오.
{
function func(num1, num2){
if(num1 > num2) return num1
else return num2
}
console.log(func(10, 23) + func(40, 50))
}
func함수가 실행될때
(10 , 23), (40,50)값이 들어가서
if문(num1 > num2)조건이 아니기 때문에 else 조건이 실행되어서
값은 큰값만 남아요
그걸 + 해주면 73이 나와요