메모이제이션이란?함수에 프로퍼티를 추가하여 값을 캐시한 후에 다음 호출 시점에 복잡한 연산을 건너 뛰도록 하는 패턴예제를 보면 이해가 쉽다.func이란 함수 객체에 cache 프로퍼티를 추가하여 결과값을 저장해 놓은 뒤두번 째 호출 부터는 if(func.cache[param]) 과정을 건너뛰게 된다. 커링이란?커링은 참 신기한놈이다. 함수와 인자의 새로운 조합으로 새로운 함수를 만드는 것이다.어떤 함수를 호출할 때 대부분의 인자값이 비슷하다면 커링을 사용하는 것이 좋다. 매개변수(인자)를 일부 적용시키고 새로운 함수를 동적으로 생성 할 수 있기 때문이다.
기본적인 원형은Function.apply(thisArg, argArray);Function.call(thisArg, arg1, arg2, ... , argN);입니다. 우선 위의 두개를 사용하는 이유는 상속과 관련이 있습니다. 자바스크립트는 상속이란 개념을 도입할 수는 없지만 다른 함수를 가져다와 사용할 때 위의 함수를 사용한다. 둘의 공통점은 첫 번째 변수이다.현재 객체로 사용될 객체를 입력하면 된다. 둘의 큰 차이는 인자값을 전달하는데apply 는 배열로 전달 call 은 인자로 전달 이다. 간단하게 예제를 보면 이해를 할 수 있다.
자바스크립트 기초를 공부하다보면 호이스트란 단어가 나온다.이걸 이해하기에 조금 시간이 걸렸지만 필수로 알아야 할 내용이라 끄적여 본다. 함수내에서 변수를 찾는 방식1. 지역변수로 선언 되어 있는지 확인2. 지역변수가 없으면 전역변수로 선언 되어 있는지 확인지역변수, 전역변수 변수 선언명이 같은 경우에는 지역변수를 우선적으로 찾는다. 기본적으로 호이스팅은 함수내에 선언된 변수를 위로 끌어올린다 라고 생각하면 된다. 예제를 보자func함수 안에서 name이란 변수를 사용했다. 출력결과는 global이 나온다.이유는 함수내에 var를 사용하지 않고 변수를 선언시에는 전역변수로 인식하기 때문이다. 위와 같은 함수에서는 다음과 같은 결과가 출력이 된다. 이유는 호이스팅이 되었기 때문이다.func함수에서 name이..
해당 문자열에서 문자열이나 숫자를 추출하고 싶을 경우에는 정규식을 이용해야 한다. 정규식을 어느정도 이해해야만 사용할 수 있다 /[정규식 표현]/옵션 옵션 g : 전체 검사 i : 대소문자 모두 검사 숫자만 추출 var str = "abcdDEFG123AcdDee443f"; str.replace(/[a-z]/gi,""); 문자만 추출 var str = "abcdDEFG123AcdDee443f"; str.replace(/[1-9]/g,"");
문자열 혹은 배열을 뒤집을 때는 내장함수인 reverse()를 이용해서 하면 간편하다. 1. 배열 뒤집기var numberArray = ['1','2','3','4','5','6','7','8','9'];console.log(numberArray.reverse());위와 같은 배열이 있을 때간단하게 배열을 뒤집을 수 있다. 2. 문자열 뒤집기1) 문자열에 구분자가 있는 경우var str = "김태희,전지현,이나영,한가인";위의 문자열은 콤마(,)로 구분을 할 수 있다.문자열은 reverse() 함수가 없으므로 배열로 만든 뒤에 배열을 뒤집고 다시 배열을 문자열로 변환한다.1. spilt() 함수를 이용하여 문자열 => 배열로 변환2. reverse() 함수를 이용하여 배열을 뒤집음3. join() 함수를..