concept/javascript
-
[ ] === [ ] // false? 참조 타입(reference type)이란?concept/javascript 2020. 3. 31. 19:05
[] === [] 를 콘솔 창에서 찍어보았을 때, 결과 값은 false 가 나온다. 왜 그럴까? 이것을 원시 타입(primitive type) 과 참조 타입(reference type) 이라는 개념을 통해 알아볼 수 있다. 원시 타입(primitive type) 참조 타입(reference type) number, string, Boolean, null, undefined, symbol 객체(object), 배열(array), 함수(function) 먼저 원시 타입(primitive type)에 대한 설명이다. 1 === 1 // true 'hello' === 'hello' // true true === true // true 그리고 참조 타입(reference type)에 대한 설명이다. [] === ..
-
.bind 를 이용한 템플릿 만들기concept/javascript 2020. 3. 31. 16:49
function template(name, money){ return '' + name + '' + money + ''; } template('ohyeon', 100); //ohyeon100 여기서 .bind를 활용해서 name을 템플릿으로 고정시켜보자. let tmplOhyeon = template.bind(null, 'ohyeon'); tmplOhyeon(100) //--> ohyeon100 tmplOhyeon(200) //--> ohyeon200 이렇게 money의 값만 변수로 지정하는 함수를 새로 만들 수 있다. 그렇다면? money를 고정시키고 name만 변하게 만들 수는 없을까?
-
Array.prototype.indexOf() vs String.prototype.indexOf()concept/javascript 2020. 3. 31. 16:38
Array.prototype.indexOf() const beasts = ['ant', 'bison', 'camel', 'duck', 'bison']; console.log(beasts.indexOf('bison')); // expected output: 1 // start from index 2 console.log(beasts.indexOf('bison', 2)); // ** index 2에서부터 찾아라! // expected output: 4 console.log(beasts.indexOf('giraffe')); // expected output: -1 String.prototype.indexOf() const paragraph = 'The quick brown fox jumps over the l..
-
재귀 함수(recursion)concept/javascript 2020. 3. 30. 18:42
재귀: 함수를 스스로 호출하는 것 function foo(){ foo(); } 대표적인 예시는 !(팩토리얼)이다. function factorial(n){ if(n === 0){// ** 재귀는 무한 반복을 방지하기 위해 반드시 탈출 조건이 있어야 한다!!! ** return 1; } return n * factirial(n - 1); } 기본적으로 반복문이므로, 모든 재귀는 반복문으로 표현할 수도 있다. function factorial(n){ let result = 1; for(let i = n; i > 0; i--){ result = result * i; } return result; } 대표적인 두 번째 예시는 피보나치 수열 이 있다. 피보나치 수열이란? 0, 1, 1, 2, 3, 5, 8, 13..
-
함수에서 헷갈릴 수 있는 개념concept/javascript 2020. 3. 29. 20:45
let consoleEven = function(num) { if(num % 2 === 0){ console.log(true) } else { console.log(false) } } consoleEven(2) //--> true let consoleResult = consoleEven(2) //--> true consoleResult //--> undefined 즉, 함수을 실행한 것을 변수에 담고, 변수를 선언하면 함수가 실행되지 않는다!
-
숫자 활용 메소드(Number/Math method)concept/javascript 2020. 3. 29. 18:38
Number.isInteger(value) arguments: 정수인지, 아닌지 여부를 검사할 값 return value: 정수를 판단한 결과 (Boolean) parseInt(value) / parstFloat(value) arguments: 형변환(type casting)하기 위해 파싱될 값 return value: 정수 또는 소숫점 숫자 parseInt(value, radix) parseInt는 진법으로 변환할 때도 사용함 radix가 필요없는 10진법 변환일 경우에도, 명시적으로 10을 넣어주는 것을 권장 num.toFixed([digits]) arguments: 소숫점 뒤에 나타낼 자릿수 (optional, 기본값은 0) return value: 숫자를 나타내는 문자열 Math.min([valu..
-
reduce()concept/javascript 2020. 3. 28. 12:57
배열에서 반복이 필요할 때 for 문을 쓰지 않고 함수로서 작동할 수 있는 방법이 여러가지가 있다. 예를 들어 forEach / map / filter / reduce 등 이 있다. 그 중에서 reduce는 배열의 여러 엘리먼트들의 개수를 원하는 기능을 만들어 엘리먼트 개수를 축소시키는 함수이다. 그래서 reduce 함수가 작동이 되면 배열의 길이 만큼 작동이 반복되면서 결과값을 호출한다. reduce의 작동 원리: 배열 축소 - 배열에서 문자열로 - 배열에서 숫자로 - 배열에서 객체로 => 여러 개의 값이 담긴 배열이 줄여서 최종적으로 하나의 값으로 만드는 과정 리듀스의 인자로는 첫번째 함수 두번째 초기값을 인자로 써서 작동할 수 있는데 초기값은 옵션적인 부분이다. (바로 밑 검정 부분으로 정리된다.)..