분류 전체보기 88

JS 배열(array) , 객체(object), 매개변수 분해

분해를 사용하면 배열이나 객체, 매개변수를 분해할 수 있다. 배열의 분해는 const score = [10, 9, 8, 6, 4, 3, 2, 1] const [number1, number2, number3, ...everyoneElse] = score; 위의 두 코드중 아래코드처럼 분해할 수 있다. 그럼 number1,2,3 everyoneElse가 순서대로 위 score 함수에 맞춰서 새로 생성된다. number1 = 10 // number2 = 9 // number3 = 8 // evryoneElse = 6,4,3,2,1 객체의 분해는 const user = { email: 'junyoungk@gmail.com', password: '4394930', firstName: 'kim', lastName:..

JS 기본매개변수, 전개, Rest

기본매개변수를 사용하면 함수의 ( ) 에 빈칸을 넣었을때의 디폴트값을 정할 수 있다. function multiply(a, b = 1) { return a * b; } a는 기본매개변수가 없고, b는 기본값이 1이므로 muiltiply(3)을 넣으면 a는 3 b는 기본값 1로 3이 return된다. 기본매개변수는 기본매개변수가 없는 값의 뒤에 작성해야 순서를 잘 인식한다. 전개를 사용하면 배열의 항목을 하나하나 비교가능하다. const num = [1, 3, 4, 1, 6, 3] const max = Math.max(num) 위 처럼 입력하면 max 변수는 NaN이 출력된다. 그 이유는 num을 어떻게 받아들일지 모르기 때문에디ㅏ. 하지만 num대신 ...num을 넣어 const max = Math.ma..

JS reduce

const numbers = [3, 5, 7, 9, 11] const sum = numbers.reduce((합계, 값) => { return 합계 + 값; }); sum의 값은 35. reduce의 역할은 배열의 숫자를 하나하나 줄여나가다 마지막에 숫자 하나를 남기는걸 뜻한다. 위 코드를 예를 들면, 처음 합계는 3+5 = 8 두번째 합계는 8+7 = 15 세번째 합계는 15 + 9 = 24 마지막 합계는 24 + 11로 35가 나온다. 하지만 따로 시작 숫자를 정해줄 수 있다.. const numbers = [3, 5, 7, 9, 11] const sum = numbers.reduce((합계, 값) => { return 합계 + 값; }, 1); 이렇게 return 값뒤에 시작값을 추가해주면 된다. ..

JS Every, Some

Every, Some every는 지정한 값의 배열이 다음 함수값을 모두 만족하면 true를 return한다. some은 지정한 값의 배열이 다음 함수값을 한 항목이라도 만족하면 true를 return한다. const everyScore = score.every(scores => scores >= 80) const everyScore2 = score.every(function (scores) { return scores >= 80; }) Arrow를 사용한 everyScore와 사용하지 않은 everyScore2 const someScore = score.some(scores => scores >= 87) const someScore2 = score.some(function (scores) { retur..

setTiemeout, setInterval, filter

setTimeout(() => { console.log("HELLO!!") }, 3000) setInterval(() => { console.log(Math.random()) }, 3000) setTimeout은 지정한 ms가 지난 후 해당 함수를 실행시킨다 ( 위는 3000 ) setInterval은 지정한 ms가 지날 때 마다 해당 함수를 실행시킨다 참고로 함수를 실행시키는 거라서 함수가 아닌 단순히 console.log 같은 걸 넣으면 실행하지 않는다. Filter filter는 해당 값의 배열을 함수와 비교해서 true로 filter된 부분들만 따로 배열을 한다. number = [1, 2, 3, 4, 5] const filterNumber = number.filter(n => { return n

JS forEach,MAP, Arrow

forEach forEach는 함수를 인수로 받아들여 배열안의 아이템 각각에 대해 함수와 코드를 한 번씩 실행한다. const nums = [1, 2, 3, 4, 5, 6]; nums.forEach(function (n) { console.log(n * n) }); 해당 내용은 forEach에게 nums의 배열을 전달하고 배열 안의 항목들을 곱해준다. 이것은 마치 const forEach = function() 과 같은 느낌이다. 위에서 function안의 n은 const nums와 같다. MAP map은 forEach 와 비슷하게 변수의 배열을 function으로 받아 한번씩 실행시킨다. 하지만 다른점을 다른 상태로 그 배열을 받아서 새로운 배열을 생성한다. 즉, 매핑한다. const texts = [..

JS Try Catch

Try Catch 는 문제가 나올 것 같은 부분을 try { } 로 묶어서 시도하고 문제가 발생하면 그 부분을 catch { } 로 묶어서 잡아 다른 실행을 한다. function yell(msg) { try { console.log(msg.toUpperCase().repeat(3)); } catch (e) { console.log("string next time!"); } } 위 같은 코드는 toUpperCase를 하기 위해서는 msg의 값이 string이 들어가야 하는데 만약 yell(123123) 같은 숫자를 입력하면 에러가 뜨는 코드인데, 그 부분을 잡아주기 위해 문제 예상 부분을 try로 묶어서 시도하고 문제가 yell(13123)를 입력해 문제가 발생하면 그 부분을 잡아서 console.log..

JS This

const cat = { name: 'Blue Steele', color: 'grey', breed: 'scottish fold', meow() { console.log(this.color); } } 위 코드로 cat.meow() 를 입력하면 meow함수의 console.log(this.color) 때문에 cat.color가 입력되어 grey가 출력된다. 여기서 this가 의미하는바는 const의 cat을 뜻한다. 즉, this.color는 cat의 프로퍼티인 color를 뜻한다. 여기서 this는 cat.color중 color의 객체인 cat을 뜻한다. 그런데 만약 아래처럼 const cat = { name: 'Blue Steele', color: 'grey', breed: 'scottish fold'..

JS 함수를 변수로, 인수, return, 메서드

함수를 변수로 const add = function (x, y) { return x + y; } 함수를 위처럼 변수로 처리해서 표현도 가능하다. 원래라면 function add(x,y) 처럼 함수명을 지정해줘야하지만 위처럼 변수에 함수를 지정하면 함수명이 필요 없으며 사용방법도 함수와 같이 add(3,4) 를 입력하면 7이 출력된다. 함수를 인수로 function callTwice(func) { func(); func(); } function rollDice() { let roll = Math.floor(Math.random() * 6) + 1; console.log(roll); } 함수를 인수로 사용하여 함수가 함수를 불러올 수도 있는데, 위처럼 rollDice 함수가 1~ 6 자리의 수를 변수 rol..

JS BLOCK, var, lexical scope, 함수를 변수로

BLOCK let radius = 8; if (radius > 0) { const PI = 3.14; let msg = 'HI!' } 해당코드를 입력하고 console.log(radius)를 입력하면 8이 나오지만 console.log(PI)나 msg를 입력하면 나오지 않는다. 그 이유는 BLOCK 때문인데 { } 안의 대괄호는 전부 BLOCK이다. 함수대신 대괄호의 블록이 들어간다고 생각하면 된다. let radius = 8; if (radius > 0) { var PI = 3.14; var msg = 'HI!' } 하지만 위처럼 const 나 let이 아닌 var를 사용한다면 block 밖에서도 해당 변수를 입력하기 때문에 console.log(PI)나 msg를 입력하면 3.14와 HI!가 나온다. ..