오늘은 자바스크립트를 시작하는 날!
1주차는 글 1개로 퉁치고 오늘부터 TIL을 쓴다!
오늘은 자바스크립트 내용을 복습하는 시간으로 자바스크립트 문제집이 제출되어 하루종일 문제를 풀고 학습했다.
레이서 들과 소통하면서 다양한 풀이방법과 메서드를 깨닫기도하고, 헬프센터로 질문하기도 한 날이었다.
오늘 저녁부터 1차 스터디 신청 및 모집이 진행되었다. 벌써 신청하고 채팅으로 스터디원과 통성명은 완료했다! 1차는 기초스터디지만 2차에는 더 심화된 스터디를 할 수 있기를~
문제를 풀어가면서 헷갈리는 메서드와 개념들을 기록하였다.
해당 내용은 학습시에 자주 잊는 내용과 추가로 깨달은 내용을 필기한 내용의 순서이다.
document.writeln();
: 사용하면 출력값 사이에 공백을 넣을 수 있음
document.writeln(변수명);
//
: 한 줄 주석 처리
/* */
: 여러 줄을 주석 처리
//const num = 1;
/*
const str;
str = "Hello World"
*/
document.write(reverse("Hello"));
//olleH 출력
function reverse(str) {
var reverStr = "";
for (var i = str.length-1 ; i >= 0; i--) {
reverStr += str.charAt(i);
}
return reverStr;
}
String.prototype.charAt()
charAt(index)
Array.prototype.concat()
concat()
메서드는 인자로 주어진 배열이나 값들을 기존 배열에 합쳐서 새 배열을 반환합니다.concat(str1, str2, …)
‘’.concat(str1)
빈문자열에서도 쓸수 있음reversed = str.split('').reverse().join('');
split('')
하나의 문자마다 배열의 하나의 인덱스 값으로 문자를 분리 -> revese
거꾸로 배열 시킴 -> join('')
공백없이 배열내의 모든 인덱스를 이어붙여 문자열로 만듬[조건]
입력: 문자열들로 이루어진 배열 1개
출력(반환): 문자열들이 알파벳 순서대로 나열된 배열
function repeatString(str, n) {
while (n -1 > 0) {
str += str;
n--;
}
return str;
};
String.prototype.repeat()
keyword : javascript repeat string / 자바스크립트 문자열 반복
function repeatString(str, n) {
return str.repeat(n);
}; /*str이 n번 반복하여 반환됨*/
repeat(n)
: 문자열을 주어진 횟수(n)만큼 반복해 붙인 새로운 문자열을 반환합니다.
[조건]
입력: 문자열들로 이루어진 배열 1개
출력(반환): 문자열들이 알파벳 순서대로 나열된 배열
function sortStringArray (str) {
return str.sort();
}
sort()
메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환arr.sort([compareFunction])
function compare(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}
compareFunction(a, b)
compareFunction(a, b)
compareFunction(a, b)
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// [1, 2, 3, 4, 5]
숫자형일 경우
function reverseStringArray (str) {
str.sort(function (a, b){
return b - a ;
});
return str;
}
문자열일 경우
- charCodeAt 메소드 때문에, 숫자형이 들어 올 경우 오류남
function reverseStringArray (str) {
str.sort(function (a, b){
return b.charCodeAt() - a.charCodeAt() ;
});
return str;
}
[조건]
입력: 문자열들로 이루어진 배열 1개
출력(반환): 문자열들이 알파벳 순서 반대로 나열된 배열
function reverseStringArray (str) {
str.sort().reverse();
return str;
}
sort()
와 reverse()
를 결합했음!function reverseStringArray (str) {
str.sort(function (a, b){
return (a > b ? -1 : 1) ;
});
return str;
}
sort()
내부 함수로도 문자열 내림차순 가능!!뺄셈기호로 시도해도 통과되지 못한 테스트케이스가 존재해서 무척 고생했었는데, 타입때문이었다! if 문을 사용해 서로 비교하게끔 해버리고 retrun 값을 주는 형식으로 해결함!
(사실 구글링을 좀 했다...)
1부터 200사이의 소수의 합을 구하기
let sum = 0;
for (let i = 1; i <= 200; i++){
for (let j=2; j <= i; j++){
if(i % j == 0) {
if (i !== j) {
break;
} else {
sum += i;
}
}
}
}
document.write(`1이상 200이하의 소수의 합 = ${sum}`)
잊지 않기
해당 문제를 풀면서 블로그를 써야겠다고 다짐하게되었다. 사실, 이 문제는 두 번째로 접하는 것이고, 두 번다 깔끔하게 풀어 내기 힘들었던 문제였다.
소수 구하기 알고리즘에서 작성하는 while 문을 그대로 가져와 사용하려고 했던점이 문제였던 것같다. 계속 공부해가면서 더 괜찮은 풀이 방법을 깨닫게 되겠지만, 오늘있었던 날을 기억하기 위해 이 글을 쓴다.
break 와 continue 의 차이는?
코드를 작성하면서, break와 continue를 얼마나 많이 쓰고 지웠는지 모르겠다.
먼 훗날 미래의 내가 다시 봐도 이해하기 쉽게 쓰기가 참 힘들다. 지금 기준으로 이해한 내용으로 정리 해놓는다!
break
: 현재 반복문, switch문을 종료하고 그 다음문으로 프로그램 제어를 넘김for (let i = 1; i <= 200; i++){ for (let j=2; j <= i; j++){ if(i % j == 0) { if (i !== j) { break; } else { sum += i; }}}}
for 문을 종료시키고 상위단계 for문의 다음 i값 조건으로 넘어간다.
continue
: 지정된 루프의 현재 반복에서 명령문의 실행을 종료하고 반복문의 처음으로 돌아가여 루프문의 다음 코드를 실행함for (let j=2; j <= i; j++){ if(i % j == 0) { if (i !== j) { continue; } else { sum += i; } } }
for문내의 바로 다음 j값 조건으로 넘어간다.
parseInt()
아참 1주차 선택강의에서 리눅스 강의도 있었던걸 잊었다!
짬내서 들어서 그것도 꼭 완강해야지 ㅠ.ㅠ