find와 includes 메서드를 통하여 key에 무엇이 들어있는지 확인하고 꺼내올 수가 있다.

const arr = ['node.js', 'all in one']

const ret = arr.find(key => key === 'all in one')
//  find 함수는 해당 키 값을 배열에서 찾아내서 일치하면 그 값을 리턴한다.
const ret = arr.includes('node.js')
// includes 함수는 해당 키 값이 배열에 존재하는지 보고 있으면 True를 리턴한다.

결과값 = 1번 all in one
				 2번 True

즉시 실행 함수는 위와 같은 형태인데 함수를 함수() 같은 명령어로 실행하는게 아니라 그냥 바로 저절로 실행되어 그 결과 값만을 변수에 담을 수 있게 한다.

//IIFE
const r = (function (){
 let lang = 'js';
 return lang
})(); 
consol.log(r)
// 결과값  'js'

오류 예외처리의 경우 아래와 같이 작성한다.

try{
	a = 1
}catch(e){
	throw e
}

// or

try{
	if something.length === 8{
	throw "something is length 8"
	} //이런식으로 예외처리도 가능하다.
}catch(e){
	consol.log(e)  // 에러 출력
	}

큐와 스택을 통한 배열을 꺼내쓰고 제거하는게 가능하다.

const something = [] // 빈배열 선언
something.push(1)
something.push(2) // push를 통한 차례로 배열에 입력한다. append도 있음.
const r = something.shift() <- 제일 처음으로 들어간 배열의 인덱스를 꺼내쓴다.
consol.log(r) // 1이 출력된다.

// 반대

const r =something.pop() <- 제일 마지막의 배열 요소를 꺼낸다.
consol.log(r) // 2이 출력된다.

every란 메서드는 배열안에 요소들이 특정 조건 값에 모두 일치될 때를 검사하는 기능이다.

const arr = [2, 3, 4]
const ret = arr.every(key => key > 1) //arr에 있는 요소들이 1보다 큰지 검사
consol.log(ret) // true 리턴

forEach라는 메서드는 파이썬의 in 과 비슷한 기능을 한다.

/* python의 경우 순차하면서 배열의 요소를 검사할 떄에 
		for i in arr 로 검사를 하는데 이와 같은 것이 자바스크립트에도 있다. */

const arr = [1, 2, 3]
arr.forEach(item => console.log(item)) 
// 결과값 1 2 3

map과 filter라는 함수가 있다. 각 요소들을 순회하면서 다시 리턴값으로 뿌려주는데 map의 경우는 특정 요소들에게 데이터 조작을 할 수 있고, filter는 조건값을 넣어 해당 조건값과 일치하는 리턴 값만을 뽑아서 준다.

const arr = [1, 2, 3]

const b = arr.map(index => index + 1) 
console.log(b) // b = [2, 3, 4]

const c = arr.filter(index => index > 2) 
console.log(c) // c = [3, 4]

배열과 배열 객체와 객체(파이선의 딕셔너리)의 합은 다음처럼 한다.

const newObj = {
	name : 'wecode'
}

const newObj2 = {
	age : 12
*}*

const arr = [1,2,3,4]
const arr2 = [5, 6, 7, 8]

const ret = Object.assign({}, newObj, newObj2) // 객체 합치기
const ret = [
	...arr,
	...arr2
] // 배열 합치기

Destructor 방식으로 객체 모듈을 불러올 때에 비구조화된 방식으로 불러오면 매우 편한데, 배열의 경우 해당 자리수를 불러올 떄에 아무것도 입력하지 않고 , 만 넣으면 그 자리를 생략하고 변수로 선언된 자리와 매칭된 자리의 수를 넣어준다.

const obj = {
	title: 'Hello',
	value: 'good'
}

const {title, value} = obj 
console.log(title) // Hello 출력

const arr = [1, 2, 3]
const [, a ,] = arr

console.log(a) // 출력 2

reduce는 map과 fitler가 조합된 형태이다. 인자로는 첫번쨰는 순회한 값을 담을 곳, 두 번째는 순회할 벨류값, 세번쨰는 index 네번쨰는 arry로 index의 대상이 될 배열이다.

const arr = [1 , 2, 3]

arr.reduce( (tot, value, index, arr) => {
	tot += value 
	tot += arr[index]
	return tot
}, 0 // 첫번째 자리의 초기화 값)