JavaScript

JS 3일차

Zㅣ존수빈zz 2022. 12. 19. 12:17

1. Error

- name, message, stack으로 구성되어있다

- 에러가 발생하면 프로그램이 중단되므로 이를 방지하기 위하여 에러는 처리되어야 한다

- 에러처리: try / catch ...finally

try {		 		// 코드를 작성한다
    let x = 'foo';
    console.log(x);
} catch(err) {    	 // 에러를 처리한다
    console.error(err);
} finally {			// 에러 발생여부와 관계없이 항상 실행된다
	console.log('hello')
}

 

- 에러의 종류

  • ReferenceError - 선언되지 않은 변수를 참조했을 때 발생하는 에러
  • SyntaxError - 문법오류 / 컴파일 에러. 컴파일러가 코드를 이해하지 못해서 발생하는 오류로, try / catch블럭에서 처리하지 못하는 오류이다.
  • TypeError - 변수나 인자가 유효한 타입이 아닐 경우 발생
  • RangeError - 값이 허가된 범위를 벗어났을 때 발생한다
  • URIError - encode URI() 또는 decodeURI() 함수가 유효하지 않은 인자를 전달받았을 때 발생한다

 

- 커스텀에러

  throw : 커스텀에러를 발생시킨다

try {
	let foo = 'Hello';
    
    if(foo === 'Hello'){
    	throw 'Not Hello'
        console.log('Bye')
    }
    // throw가 에러를 발생시켜 실행되지 않는 if문
} catch(err) {
	console.error('에러: ',err)
}
 // 에러: Not Hello

2. Array(배열)

- 한 개 이상의 값을 가지고 있는 데이터타입, item을 대괄호로 묶어 배열을 나타낸다.

  ex) let arr = ['foo', 'bar', 'baz];

 

- 배열의 item를 사용하기 위해서는 item의 인덱스를 사용한다

  ex) arr[0], arr[1], arr[2]

 

- Array에서 사용하는 메서드

  • push(삽입할 item): 배열의 끝에 새로운 item을 삽입
  • pop(): 가장 마지막의 item을 1개 제거
  • splice(시작 index, 갯수): 시작 index부터 갯수만큼 제거. 갯수를 생략하면 끝까지 삭제
  • concat(합치고싶은 array): Array를 합친 후 새로운 Array를 리턴한다. 기존의 Array는 수정되거나 제거되지 않는다
  • filter(callback): item을 순회하여 조건에 맞는 item을 리턴한다
// push
let arr = ['foo', 'bar'];
arr.push('baz');
console.log(arr);		// ['foo', 'bar', 'baz]

// pop
let arr = ['foo', 'bar', 'baz'];
arr.pop();
console.log(arr);		// ['foo', 'bar']

// concat
let arr1 = ['foo', 'bar'];
let arr2 = ['baz'];
let carr = arr1.concat(arr2);
console.log(carr);		// ['foo', 'bar', 'baz]

// splice
let arr = ['foo', 'bar', 'baz'];
carr.splice(1,1);		// 1번방에서부터 1개:'bar'
console.log(arr);		// ['foo', 'baz]

// filter(callback)
const arr = [1, 2, 3, 4, 5];
const r = arr.filter(function(item, index, array) {
	if(item > 3) {
		return item;
	}
})
console.log(r);			// [4, 5]

 

- Array의 item에 특정한 작업을 수행하기 위해서는 반복문을 사용한다.

let arr = ['foo', 'bar', 'baz'];
for(let i=0; i<arr.length; i++){
    console.log(arr[i].toUpperCase())   // toUpperCase: 대문자로 바꾸어주는 메서드
}		// ['FOO', 'BAR', 'BAZ']