Javascript50 JS Regular Expressions 오늘은 Regular Expressions에 대해 알아보자. Regular Expressions란? A regular expression (shortened as regex or regexp; also referred to as rational expression) is a sequence of characters that specifies a search pattern. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation. It is a technique developed in theoretical co.. 2021. 10. 26. JS 심화개념 - MapReduce, Currying, Function composition, Declarative Programming 자바스크립트를 공부하면 공부할수록 컴퓨터 언어의 세계는 정말... 심오한 것 같다. 컴퓨터공학은 인간이 만든 공학이기 때문에 다른 공학에 비해 간단할 것이라 생각했던 과거의 내가 부끄러워 진다. 오늘은 훌륭한 개발자가 되기위해 알아둬야 할 몇가지 개념들에 대해 알아보자 MapReduce Model MapReduce 모델은 대량의 데이터를 처리할 때 사용 하는 프레임워크이다. 이름에서 유추 할 수 있듯이 Map과 Reduce를 혼용해 대량의 정보를 병렬처리하며 점차 가지수를 줄여나가는 방법이다. 아래의 이미지를 보면 이해가 빠를 것이다. 잘은 모르겠지만 위와같은 모델을 사용하면 대량의 대이터를 분산시켜 병렬처리를 하기 때문에 좀더 효율적인 데이터 처리가 가능하다고 한다. Currying 커링의 Curry는.. 2021. 10. 25. JS Shallow Copy 브래들리 쿠퍼와 레이디 가가가 주연으로 나왔던 영화 Star is born에서 shallow라는 곡을 참 좋아한다. 근데 자바스크립트의 shallow 개념은 정말 거지같다. 오늘은 Shallow Copy (얕은 복사)에 대해 공부해 보자 Shallow Copy란? Shallow copy는 단어의 의미에서 유추 할 수 있듯이, 얇게 복사를 한다는 개념이다. 다음과 같은 객체가 둘 있다고 가정해 보자. const obj = { mastermind: 'Joker', henchwoman: 'Harley', relations: ['Anarky', 'Duela Dent', 'Lucy'], twins: { 'Jared Leto': 'Suicide Squad', 'Joaquin Phoenix': 'Joker', 'He.. 2021. 10. 25. JS 내장 고차함수 자바스크립트에서는 기본적으로 제공하는 고차함수들이 있다. 그 중 배열 메소드 중 아래 고차함수들이 자주 사용된다. forEach find filter map reduce sort some every 오늘은 이 내장 고차함수들에 대해 공부해 보자. 사용법은 다른 메소드들과는 약간 다르다. 변수하나만 넣어주면 되던 다른 메소드들과는 달리, 내장 고차함수들은 찾고자 하는 혹은 원하는 논리식을 함수 형태로 넣어주어야 한다. 뭔 말이지? 하겠지만 아래 예제를 통해 감을 잡아보자. forEach "배열".forEach(배열의 한 요소씩 꺼낼때 마다 실행하고픈 함수); forEach는 배열을 한번씩 순환하며 파라미터값(함수)를 실행한다. forEach가 처음에는 쓰기 어렵지만, 익숙해지면 for문 노가다에서 해방될 .. 2021. 10. 24. JS Reduce 메소드 Rest에 관한 내용을 공부하면서 오늘은 Rest에 관한 내용정리를 해야겠다고 생각을 하던 와중, 아래와 같은 예문을 만나게 되었다. function sum(...theArgs) { return theArgs.reduce((previous, current) => { return previous + current; }); } sum(1,2,3) // 질문: 어떤 값을 리턴하나요? sum(1,2,3,4) // 질문: 어떤 값을 리턴하나요? 도대체 이게 뭐람... reduce메소드 이후로 계산이 도대체 어떻게 진행되는 것인지 도통 이해가 되질 않는다. 사실 공부할게 산더미라 그냥 대충 이해하고 넘어갈까... 하다가 그냥 오늘 공부하기로한 Rest개념은 잠시 접어두고 reduce 메소드에 대해 한번 파보려고 한.. 2021. 10. 21. JS 스코프와 클로저 오늘은 자바스크립트의 스코프와 클로저에 대해 알아보자. 사실 이부분 공부하면서 머리에 쥐가... 중요한 개념인데 겁나 헷갈린다. 스코프란? Scope in JavaScript refers to the current context of code, which determines the accessibility of variables to JavaScript. The two types of scope are local and global: 스코프란 현재 코드의 문맥을 의미하며 자바스크립트 변수의 접근성을 결정한다. 스코프는 로컬과 글로벌로 나뉜다. Global variables are those declared outside of a block 블록 밖에서 선언된 변수는 글로벌 Local variables a.. 2021. 10. 21. JS 원시타입과 참조타입 배열과 객체를 배우면서 알아야 할 아주 중요한 개념이 있다. 바로 원시타입(primitive type)과 참조타입(reference type)이다 . 원시타입이란? method를 가지지 않는 6가지 타입을 뜻한다. 이름에서 유추 할 수 있듯이 아주 먼 컴퓨터 조상분들 때 부터 사용된 타입이다. string number bigint boolean undefined symbol (null) 원시타입의 작동원리 원시타입의 작동원리는 우편함에 편지를 넣는것과 비슷하다. let a = 'swimming in dev'; 위와 같은 선언과 할당을 했다고 하자. 이는 a씨가 사는 우편함에 'swimming in dev'라는 편지를 넣는 것과 같다. 그리고 이후 변수 a를 사용할 때 마다 안에 있는 편지를 꺼내오는 방식.. 2021. 10. 20. JS 배열과 객체 오늘은 대량의 데이터를 다룰 때 유용하게 쓰이는 배열과 객체에 대해 알아보자. 배열과 객체는 Boolean 혹은 String 등과 같이 별도의 자료형으로 취급하는데, 정확히는 참조 타입[Reference Type]이라고 한다. 1. 배열 배열은 순서를 의미하는 인덱스와 각 인덱스별로 값을 지니는 요소(Element)로 구성된다. 문법 let '배열명' = [ element0, element1, element2, ~ ]; 값접근식 '배열명'[접근하고자 하는 요소의 인덱스 값]; 배열을 활용한 속성 / 메소드 '배열명'.length; >> 배열의 길이 반환 (인덱스+1) '배열명'.push('추가하고자하는 요소의 값'); >> 요소를 맨마지막 인덱스로 추가 '배열명'.unshift('추가하고자하는 요소의 값.. 2021. 10. 16. JS 반복문 C언어 수업 때 어떤 강사님이 했던 말이 있다... 컴퓨터는 멍청합니다. 하지만 성실하고 정확하죠. 그렇다. 반복문이야 말로 컴퓨터의 성실함과 정확함이 돋보이는 기능이 아닐까?! 반복문에 대해 알아보자. for 구문 문법은 아래와 같다. for (초기화; 조건식; 증감문) {} 초기화 부분에는 초기값을 설정하고 조건식에는 반복되는 조건을 넣는다. 마지막으로 초기화된 값이 어떻게 증감하는지를 넣으면 끝! 초기화 for (; 조건식; ) {증감문} 경우에 따라서는 위처럼 초기화와 증감문이 다른곳에 위치하기도 한다. for in 구문 배열과 함께 쓰이면 아주 좋은 for in 구문이다. 문법은 아래와 같다. for ( 변수 in 배열 ) {} 위와 같이 구문을 작성하면 {}안의 명령문을 배열에서 하나씩 변수의.. 2021. 10. 8. JS 문자 이번에는 JS의 문자열에 대해 알아보자. JS는 문자열을 다룰 수 있는 여러가지 기본적인 메소드를 지원한다. str[index] str[index]는 str이라는 문자열에서 index위치에 있는 문자열을 뽑을 때 사용한다. ex) var str = 'abcde'; console.log(str[0]); --> a console.log(str[1]); --> b console.log(str[2]); --> c console.log(str[3]); --> d * read-only이기 때문에 값을 새로 할당하지 않는이상 변경 불가! .indexOf() 찾고자하는 문자열의 위치를 알고자 할 때 쓴다. ex) 'Sean Kim'.indexOf('Kim'); *찾고자 하는 문자열이 없으면 -1 반환 .lastInde.. 2021. 10. 6. JS 조건 비교 연산자 우선 일반적인 비교연산자의 종류와 의미를 알아보자. 사실 수학시간에 봤던 기호들이라 이해하기에 어렵지는 않다. 비교연산자 종류 의미 = 이하 === 같음 !== 다름 하지만 요놈들은 뭔가 특이한데... 과연 = / == / === 이 등호들에게는 어떤 차이가 있는 것일까? 우선 "="등호는 사실 비교를 위해 사용하는 기호가 아닌 변수에 값을 대입할 때 쓰는 기호임으로 비교연산자로 사용하지 않는다. "=="와 "==="의 비교는 약간 어려울 수 있는데, 간단하게 정리하자면 == 혹은 !=는 type까지 엄격하게 비교하지 않는다. 그렇다. ==보다 더 빡세게 비교를 하는 녀석이 ===이다. 예를 들어 설명하자면, 다음과 같다. 1 == 1 // true 1 == "1" // true 1 === .. 2021. 10. 6. JS 함수 함수란 무엇인가? 함수란 아래와 같이 다양한 해석이 가능하다. 코드의 묶음 기능의 단위 입력과 출력간의 매핑 여튼 간단하게 설명하자면, 커피콩을 넣으면 커피가 나오는 기구랄까..? *매핑이란 용어가 종종 나오곤 하는데, 개인적으로 매핑의 뜻은 옛날에 구몬 학습지를 통해 했던 올바른 뜻 잇기 문제와 같다고 생각한다. (지극히 개인적인 생각입니다....) 함수의 구성 함수는 아래와 같은 구성으로 이루어져 있다. keyword name parameter body 예를 들자면, 요롷다. function fName (a,b) { console.log(a+b) } 함수 사용법 앞에서 말했듯이 함수는 커피머신과 같다. 커피머신을 사용하기 위해서는 1. 커피머신과 2. 작동버튼이 필요하듯이 함수도 선언과 호출을 통해 .. 2021. 10. 6. 이전 1 2 3 4 5 다음