[TIL] 23/10/20 javascript : 버튼타입, 문자열곂쳐쓰기
📢 오늘 리뷰
🎀 한 일
[강의]
5주차 class / closer 강의 다들음
[알고리즘]
오늘의 알고리즘 3문제 품
[개인과제]
어제 퇴근 후 git 녹화강의 다 봄
repository만 만들고, 거의 파일생성만해서 커밋올려놓음.
과제 설명서 확인 함
오늘 뭐 좀 할 줄 알았는데 한줄 쓰고 강의자료 다시 보러감.
예전 숙제 참고해서 html만 몇 줄 더 씀.
[한눈팔이..]
갑자기 내 티스토리 블로그 스킨 로그인 오류가
왠지 여태 배운걸로 해결이 될 것 같아서 꽂혀서 보다가 과제 못함!
어떤 개발자가 배포한 스킨인데
가비아 계정 주소로 들어가면 게스트인것 처럼 나옴.
티스토리 계정 주소로 들어가면 로그인 된걸로 나옴.
여튼... 이것도 공부가 되었..음..
근데 페이지의 검사로 본 html과 스킨에서 수정할 수 있는 html 파일이 달라서 멘붕왔음.
숙제나 해야지!!!!
🎁 할 일 / 부족한 점
과제 집중!
javascript에서 정규식표현도 잘 쓰는 것 같은데 한번 봐야할 듯-_-
✨ TIL
1) 버튼 타입
숙제 세줄 쓰는 와중에 <button type=submit>
예시 페이지에 type을 저렇게 써놨길래 배웠는지 안배웠는지 여튼 기억이 안나서 찾아봄.
버튼에 타입을 쓰는 이유 (button type="button") :: nana_log (nykim.work)
덜 읽었는데, 대충 submit 이면 새로고침 된다는 것 같다.
과제에서는 submit 해주는게 맞는 것 같긴함.
근데 default가 submit 이라고 해서 안써줘도 될 것 같다. 아직안해봄..
(이렇게 한줄 한줄 모르는 거 찾아보다가 어느세월에 숙제 다함?)
2) 문자열 / 배열 메소드
(오늘도 문자열 공부만 신나게 함. 나중에 모아서 잘 정리해 두기...)
오늘의 요주의 알고리즘 문제 : 문자열 겹쳐쓰기
동료의 Good 풀이 :
문자열을 배열로 바꿔서 배열 메소드 이용하고, 다시 문자열로 바꿔주기!
function solution(my_string, overwrite_string, s) {
let answer = [...my_string]; //['H', 'e', '1', '1','o', 'W', 'o', 'r','1', 'd']
answer.splice(s, overwrite_string.length, overwrite_string) //[ 'H', 'e', 'lloWorl', 'd' ]
return answer.join(''); //"HelloWorld" 를 리턴
}
사용한 메소드 : 배열 메소드 splice
array.splice(인덱스, 삭제할 갯수, "대체문자열1", "대체문자열2"...);
- 삭제할 갯수가 0이면 추가만 하는 것도 가능
- 대체문자열이 없으만 삭제만 하는 것도 가능
내 Bad 풀이 :
문자열을 substr로 잘라서 문자열 대체 replace 메소드 이용.
접근은 좋았던 것 같은데 replace가 문자열 대체시 인덱스 지정을 못해서 문제점이 있음.
그리고 mdn문서에서 substr 이제 쓰지말라고 함!
function solution(my_string, overwrite_string, s) {
var answer = '';
let slicedString = my_string.substr(s, overwrite_string.length); // "lloWorl"
answer = my_string.replace(slicedString, overwrite_string);
return answer;
}
문제가 되는 반례 :
입력값 : "aaaaaa", "bbb", 3
기댓값 : "aaabbb"
replace가 앞에서부터 찾아서 바꿔주니까 "bbbaaa" 가 나옴.
사용한 문자열 메소드 : replace(), slice()
문자열 대체 replace
let str = "Hello, world!";
let result = str.replace("world", "JavaScript");
console.log(result); // "Hello, JavaScript!"
문자열 자르기 slice
let str = "Hello, world!";
console.log(str.substr(7, 5)); // "world"
console.log(str.slice(7, 12)); // "world"
substr을 사용하면 안된다고 하니까 그 대신에는 substring() 을 쓰면 될 것 같음.
String.prototype.substring() - JavaScript | MDN (mozilla.org)