javascript
[제로초]강의중 들은 내용 정리(2)
소영
2021. 7. 31. 18:16
.sort!!!
.sort는 원본을 바꾼다.-> 불편하다..
Array.slice().sort -> 이러면 원본이 안바뀐다.
['af','ab'].sort((a,b) => a.localeCompare(b))
af와 ab의 앞엔 a이며, 같은 코드를 갖고있기 때문에 누가 더 큰지 비교가 어렵다. 그렇기 때문에 localeCompare로 비교를 하면 뒷글자까지 비교가 된다.
리팩토링 방법!!!!!!
코드가 중복되는 것 같으면 함수를 만들고 변경되는 부분을 매개변수로 만들면된다..!
여러 변수가 중복된다면, 그룹화가 가능하면 객체로 쓰자!!!!
객체[value]->이렇게 하면 key값이 나온다.(이렇게 쓰자!)
객체.value -> 이렇게 하면 문자열이 나온다.(명심!!!!)
중복 제거는 -> 리팩토링!!
but, 코드가 잘 돌아가는게 더 우선순위인것을 잊지 말자!!!!
타이머!!!
자바스크립트 타이머 시간은 정확하지 않다-> 기존하고있는 일이 끝나야 setTimeOut이 실행되기 때문이다(이벤트루프와 관련이 있다.)
setTimeOut -> 지정된 시간 후에 특정동작을 실행
setInterver -> 지정된 시간마다 반복해서 실행한다.
클로저!!!!
(function(매개변수 j){})(i) -> let j = i 와 같다.
클로저는 함수 바깥의 변수와 안(블록,함수)의 관계의 문제이다.
var과 비동기가 만나면 클로저 문제가 발생한다.
addEventListener <-> removeEventListener
{} === {} -> false
[] === [] -> false
//만약 이걸 같게 하고 싶다면 변수에 넣어 '참조'해주면 된다.
//아래 예시
let a = 1;
let b = a;
a === b // true