본문 바로가기

전체 글

(291)
[JavaScript] finally 문 try catch 문은 다음과 같이 finally 라는 블록을 하나 더 가질 수 있다. try { // 실행할 코드 } catch (err) { // 에러가 발상했을 때 실행할 코드 } finally { // 항상 실행할 코드 } try 문에서 에러가 발생하지 않으면 try 문의 코드가 모두 실행된 다음에, try 문에서 에러가 발생한다면 catch 문의 코드가 모두 실행된 다음 실행할 코드를 finally 문에 작성하면 된다. 다시말해 try 문에서 어떤 코드를 실행할 때 에러 여부와 상관 없이 항상 실행할 코드를 작성하는 것. finally 문에서 에러 처리는 다음과 같다. try { try { // 실행할 코드 } catch (err) { // 에러가 발상했을 때 실행할 코드 } finally { ..
[JavaScript] try catch 활용하기 다음과 같은 코드를 실행시키면, function printMembers(members) { for(const member of members) { console.log(member); } } const teamA = ['짱구','훈이','유리']; printMembers(teamA); const random = { name: '철수' }; // for of 문에 객체를 사용할 수 없으므로 여기서 에러 발생 printMembers(random); const teamB = ['맹구', '짱아']; printMembers(teamB); for of 문에 객체를 할당할 수 없으므로 에러가 발생한다. 프로그램이 그대로 멈춰, 뒤에 있던 배열인 맹구, 짱아는 출력되지 않는다. 그러나 try catch 문으로 코드를..
[JavaScript] try catch 문 다음의 코드를 보면, const 키워드로 선언한 변수에 새로운 값인 '이훈이' 를 재할당 하려고 했기 때문에 에러가 발생한다. // try catch 문 console.log('에러 전'); const name = '신짱구'; console.log(name); name = '이훈이'; const language = 'JavaScript'; console.log(language); console.log('에러 후'); 이 에러 때문에 language 변수와 에러 후 문자열은 출력되지 않음. 이때, try catch 문을 활용하면 된다. [try catch] try { //코드 } catch (error) { //에러가 발생했을 때 동작할 코드 } try 블록에서는 동작시킬 코드를 작성하고, try 블록 안..
[JavaScript] 에러와 에러 객체 다음과 같은 코드가 있다. 이를 실행하면 console.log('시작'); const name = '신짱구'; console.log(name); console.log(age); console.log('끝'); 정의 되지 않은 age 변수에 의해 에러가 발생하고, '끝' 이라는 문자열은 출력되지 않는다. 자바스크립트로 안정적인 프로그램을 만들기 위해서는, 이러한에러를 다루는 방법이 중요하다. 자바스크립트는 코드를 실행할 때, 에러가 발생하면 그 에러에 대한 정보를 담은 에러 객체를 생성함. console 에서보는 에러메세지도 에러 객체를 담고 있음. 에러객체는 에러의 이름을 담은 name 프로퍼티와, 내용을 담은 message 프로퍼티를 가지고 있다. 에러는 크게 세 타입으로 분류될 수 있는데, 1. 존재..
[알고리즘] 배열 만들기3 배열 만들기3 배열 arr의 첫번째 구간에 해당하는 배열과 두번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return. arr intervals result [1, 2, 3, 4, 5] [[1, 3], [0, 4]] [2, 3, 4, 1, 2, 3, 4, 5] 나의 풀이: function solution(arr, intervals) { var answer = [] for(i = 0; i < intervals.length; i++) { for(j = intervals[i][0]; j
[JavaScript] null 병합 연산자 [null 병합 연산자] 물음표 두개(??) 를 사용하여 null 혹은 undefined 값을 가려내는 연산자로, 연산자 왼편의 값이 null 이나 undefined 면, 연산자 오른쪽 값이 리턴되고, 연산자 왼편의 값이 null 이나 undefined 가 아니라면 왼편의 값이 리턴. const example1 = null ?? 'I'; // I const example2 = undefined ?? 'love'; // love const example3 = 'Codeit' ?? 'JavaScript'; // Codeit console.log(example1, example2, example3); // I love Codeit 이는 or 연산자와 비슷해보이지만, const title1 = false || ..
[JavaScript] 옵셔널 체이닝 (Optional Chaining) 객체를 활용하여 데이터를 표현하다보면, 이런식으로 중첩된 객체를 작성하는 일이 빈번하다. function printCatName(user) { console.log(user.cat.name); } const user1 = { name: 'Captain', cat: { name: 'Crew', breed: 'British Shorthair', } } printCatName(user1); // Crew 중첩된 개체를 작성할 때, 주의할 부분이 있음. onst user2 = { name: 'Young', } console.log(user2.cat); // undefined printCatName(user2); // TypeError: Cannot read property 'name' of undefined 데..
[JavaScript] 조건 연산자/ 삼항 연산자 [삼항연산자] 조건 ? truthy 할때 표현식 : falsy 할 때 표현식 조건연산자 라고도 하며 다음과 같이 나타낼 수 있다. const CUT_OFF = 60; function passChecker(score) { return score > CUT_OFF ? '합격!' : '불합격!' } console.log(passChecker(50)); // 불합격! console.log(passChecker(70)); // 합격! 조건이 여러개일 경우 다음과 같이 작성하면 됨. // 조건 ? truthy 할 때 표현식 : falsy 할 때 표현식 const CUT_OFF = 60; function passChecker(score) { return score > CUT_OFF ? '합격!' : score == ..