아 에러 진짜 짜증나면서도 가끔 고마운 존재ㅎ 아무튼 자바스크립트에서 에러를 다루는 일은 굉장히 중요하다! 자바스크립트에서 에러가 발생하면 바로 프로그램이 멈추고 이후의 코드가 동작하지 않기 때문...! 에러가 발생하면 에러에 대한 정보를 name과 message라는 프로퍼티로 담고 있는 에러 객체가 만들어진다. 에러 발생! → 에러객체 생성 무슨 에러인지 모르면 에러객체의 name이랑 message 살펴보자 대표적인 에러 객체는 SyntaxError, ReferenceError, TypeError 이며 에러 객체는 직접 만들 수도 있다. new 키워드와 에러 객체 이름을 딴 함수를 통해 에러 객체를 만들 수 있고, throw 키워드로 에러를 발생시킬 수 있다. throw new TypeError('타입..
옵셔널 체이닝 (optional chaining) 프로퍼티가 없는 중첩 객체를 에러 없이 안전하게 접근이 가능한 연산자 ?. 앞의 대상이 없으면 평가를 멈추고 undefined를 반환한다. 너무 너무 유용한 연산자입니다.. 왜 이제야 알았지 예를 들면 김테이라는 유저의 장바구니 목록 유무를 체크해서 장바구니가 빈 객체가 아니면 어떤 동작을 수행해야하는 상황 (1) 맨 처음 작성한 코드 if ( 유저.김테이.장바구니.물건 ) { 어쩌구저쩌구 } → 이러면 물건이 없는 경우 대상을 찾지 못해서 에러가 생김 (2) 그 후 수정한 코드 if ( 유저.김테이.장바구니 && 유저.김테이.장바구니.물건) { 어쩌구저쩌구 } → 동작은 한다. 하지만 영 찜찜하고 불편한 코드 (3) 옵셔널 체이닝 활용 if ( 유저.김..
맨날 헷갈려서 정리 ^.^ 사실 각각 무슨 차이인지 이번에서야 제대로 알았다. ✂ substr, substring, slice 사용법 셋 다 비슷한데 조금씩 차이가 있다. substr(시작) substr(시작, 길이) substring(시작) substring(시작, 종료) slice(시작) slice(시작, 종료) slice(-시작, -종료) - 시작값 위치에서 길이값만큼 가져온다. - 길이값이 음수면 반환값 없음 - 시작값이 끝값보다 크면 작은 숫자가 시작값으로 자동세팅 - 두 값 중 하나가 음수면 시작위치는 무조건 0 - 둘다 음수면 반환값 없음 ※ substr() - 웹표준에서 제거된 건 아니지만 바람직하지 않아서 안쓰면 제거될 예정 (쓰지말자 ㅠ) ✂ split 사용법 split('문자') sp..
다 쓰고 나니 뭘 당연한걸 썼나 싶네 .. 첨 알았을 땐 좀 놀랐음 ㅠ 지금까지 거의 단순 조회하는 업무만 하다가 파일 업로드를 맡으니 당황.. 알고보니 간단한 작업이었다 ㅠㅋㅋㅋ 역시 선 취업 후 공부의 폐해 내 업무 : 파일 보내기 기능 구현 - 파일 확장자 제한하기 (엑셀만) - 같은 파일 연속 첨부 가능하게 하기 api 등록하는 것부터 멘.붕이었다. 지금까지 그냥 이런식으로 등록함 ... 요청하기: (params) => httpClient .post(`api주소`, params) .then((response) => response), 하지만 파일 업로드는 좀 다르더라 ... 업로드해라: ({ formData }) => httpClient .post(`api주소`, formData, { header..
Javascript 📌 localStorage localStorage 객체 : 지역적으로 사용할 수 있는 저장소 객체 데이터 저장을 할 땐 일반적으로 세션이 큰 걸 활용하지만 간단하게 만들때는 localStorage도 ㄱㅊ localStorage 객체의 메소드 getItem('키') 특정한 키로 값을 꺼낼때 setItem('키','값) 특정한 키로 특정한 값을 저장할 때 removeItem('키') 특정한 키로 어떤 값을 제거할 때 clear() 전체 제거 하나씩 가져오는 구조 document.addEventListener('DOMContentLoaded', () => { const p = document.querySelector('p') const button = document.querySelecto..