“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
자바스크립트 시험 리뷰 / 오답 노트
✈. 01
{
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
indexOf() | 문자열을 검색하여 주어진 값과 일치하는 첫번째 위치값(index)을 반환 일치하는 것이 없으면 -1을 반환 / 대,소문자를 구별 |
lastIndexOf() | 문자열을 역순으로 검색하여 주어진 값과 일치하는 첫번째 위치값(index)을 반환 일치하는 것이 없으면 -1을 반환 / 대,소문자를 구별 |
includes() |
문자열 포함 여부를 검색하여, 불린(true, false)을 반환
|
✈. 02
{
function func(){
document.write("함수2가 실행되었습니다.");
}
function callback(str){
document.write("함수1가 실행되었습니다.");
_______();
}
callback(func);
//함수1가 실행되었습니다.
//함수2가 실행되었습니다.
}
🏁. str
🏴. callback함수
Callback함수는 다른 함수에 인수로 전달되어 특정 이벤트가 발생할 때 호출되는 함수입니다.
어떤 함수의 실행 결과를 처리하기 위해 다른 함수를 인수로 전달하는 것 입니다.
다른 함수에 전달하거나 변수에 할당 할 수도 있다.
비동기 프로그래밍에서 자주 사용됩니다
Callback함수는 함수의 재사용성을 높이고 코드의 가독성을 높이는 등의 잠점이 있습니다.
콜백지옥
계속 콜백함수를 부르면서 만들었을 때, 생기는 문제
✈. 03
{
function func(a, b){
console.log(arguments[0]);
console.log(arguments[1]);
}
func("1", "2");
}
🏁. 1, 2
🏴. argument
argument | 함수에 전달되는 전달되는 입력값(parameters)을 의미. 함수에 필요한 인수(argument)를 전달하여 함수의 동작을 제어할 수 있습니다. argument는 함수의 유연성과 재사용성을 높이는 중요한 개념 입니다. 함수를 호출할 때 필요한 인수(argument)를 동적으로 지정할 수 있으므로, 함수를 여러상황에서 재사용할 수 있습니다. |
var result = add(2, 3); | 이 코드는 add함수를 호출하면서 인수(argument) 로 2와 3을 전달합니다. 이 때 전달된 인수 2와 3이 함수의 매개변수(parameter) x와 y에 각각 할당되어, 함수는 2와 3을 더한 5를 반환 합니다. 이 값을 result변수 할당하여 저장할 수 있습니다. |
✈. 04
{
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. 자바스크립트가 실행되었습니다.
✈.05
{
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. 함수가 실행되었습니다.
2. 자바스크립트가 실행되었습니다.
3. 제이쿼리가 실행되었습니다.
✈.06
{
function func(index){
console.log("함수가 실행되었습니다." + index);
}
function callback(num){
for( let i=1; i<=1; i++){
num(i);
}
}
callback(func);
}
🏁. 함수가 실행되었습니다. 1
✈.07
{
let num = 1;
do {
num++;
console.log("실행되었습니다.");
} while (num <= 5);
}
🏁. 실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다. 실행되었습니다
✈.08
{
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
100200300400500
100 200 300 400 500
✈.09
{
function func(str){
return str;
}
func("함수가 실행되었습니다.")
}
🏁. func = str => str;
✈.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 + "번");
}
}
🏁. 1번, 2번, 3번 , 4번
✈.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
2로 나누었을 때 나머지가 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);
}
🏁.
✈.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)
}
🏁.
✈.17
{
let a, b, result;
a = 7, b = 4
result = a & b;
console.log(result)
}
🏁.
✈.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));
}
🏁.
✈.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));
}
🏁.
✈.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));
}
🏁.