codestates

    [JS] 고차함수

    이차방정식 마냥 이차함수라 하기는 이상하니까 고차함수라고 표현 한것 같습니다. 결국 함수안에 함수를 넣은 형태입니다. 스코프, 클로저와 비슷하게.. 자바스크립트에 특별한 대우를 받는 일급 객체(first-class citizen)가 있습니다. 대표적인 일급 객체 중 하나가 함수입니다. (자바스크립트가 나온 시점을 고려했을 때,) 자바스크립트에서 함수는 아래와 같이 특별하게 취급됩니다. 변수에 할당(assignment) 할 수 있다. 다른 함수의 인자(argument)로 전달될 수 있다. 다른 함수의 결과로서 리턴될 수 있다. 함수를 변수에 할당할 수 있기 때문에, 함수를 배열의 요소나 객체의 속성값으로 저장할 수 있습니다. 이는 함수를 데이터(string, number, boolean, array, ob..

    [JS] DOM

    DOM은 쉽게말해서 HTML이 길어지면 찾기가 매우매우 어렵기 때문에 쉽게 찾아내고 작성하는 방법을 의미하는 것 같습니다. HTML에 JavaScript를 적용하기 위해서는 HTML 문서에 포함되는 script 요소 태그를 추가하는 두 가지 대표적인 사례가 존재합니다. 하나는 태그에 추가하는 방법, 다른 하나는 가 끝나기 전에 추가하는 방법입니다. 1. 안쪽에 삽입하는 경우 2. 태그가 끝나기 전에 삽입하는 경우 'html도 위에서 아래로 읽어서 head에 넣어버리면 html을 실행시키기 전에 Javascript를 읽어서 body 맨 마지막에 넣어야 됩니다.' DOM 구조를 조회할 때에는 console.dir 이 유용합니다. console.dir(document.body), 또는 객체의 document...

    [JS] Spread, Rest, Destructing

    Spread와 Rest 문법은 굉장히 비슷한데. 기능에 대한 설명만 주구장창 표현을 하지 구별하는 명확한 차이에 대한 설명이 없어서 복잡했습니다. 제가 생각하는 공통점은 ... 을 앞에 붙이는 것이고. 차이점은 먼저 Spread는 배열하고자 하는 어느 변수를 사용해도 상관 없는 것입니다. Rest는 ...rest를 사용하지만 함수의 파라미터(매개변수)가 존재한다면 (...변수)를 사용해야합니다 그리고 ...rest를 배열이나 객체 끝에 사용하고 그 뒤에는 더 이상 다른 내용이 들어 와서는 안됩니다. rest라는 단어의 뜻을 이해하면 쉽게 이해가 됩니다. 정확한 것은 아니지만 이렇게 개념을 잡고 해당 내용을 이해할 때에 도움이 되었습니다. 1. Spread 문법 객체나, 배열에서 사용 가능 합니다. 주로 ..

    [JS] 스코프, 클로저

    스코프 : 배율로 볼수있는 범위가 다르듯이 8배로만 볼 수 있는 물체가 있으면 2배로는 볼 수 없다. 가까운 거리는 2배가 유리하지만 어쨋든 8배로는 볼 수 있다.. 클로저 : 변수 x, y 두개가 있다고 하면은, 함수안에 함수를 넣어서 x함수를 잠구고 y값을 원하는대로 컨트롤 가능하며, 함수 한번만 짜면은 컨트롤을 여러개 할 수 있다. 쉽게 생각하면 이런 느낌이었습니다. 이 때까지 코드를 짜오면서 좀 당연한 규칙(?)인듯한 느낌이었지만 구체적으로 몰랐기 때문에 이번 기회에 배우게 되었습니다. 1. 스코프 예제 1) let username = 'kimcoding'; if (username) { let message = `Hello, ${username}!`; console.log(message); // ..

    [JS] 객체

    배열과 객체의 가장 큰 차이점은 순서의 유무입니다. 배열은 요소에 0부터 순차적으로 접근할 수 있지만 객체는 속성에 순서대로 접근하지 않고, key를 통해서 value에 접근합니다. 1. 객체의 구조 key는 first, second를 지칭하는 값 value는 1, 2를 지칭하는 값 입니다. 이 둘을 구분 하는건 :(콜론)을 두어 구분합니다. 중괄호를 사용하고, key와 value 값이 2개 이상 늘어날 경우 , 로 구분을 해줍니다. let obj = { first: 1, second: 2 }; 2. 객체의 값 사용 및 추출 객체를 지정하거나 만들었으면 그 값을 사용 할 줄도 알아야 합니다. value 출력하는 2가지의 방법이 있습니다. 1. Dot notation obj.first; // '1' 2. ..

    [JS] 배열

    배열은 [ ] 안에 다양한 요소(값)를 차례로 채워 넣은 것 입니다. 아래에 값은 myMumber이란 변수에 배열 대입하였고 , 을 통해서 각 요소를 구분합니다. 1. 배열 활용법 myMumber = [ 74, 95, 12, 77 ]; myMumber[1] // 95값 출력 myMumber[4] = 66 // 4번 자리에 66 대입 (77번 뒤 66번 값 대입) myNumber.length // 4길이 출력 for (let i = 0; i < myNumber.length; i++){ sum = sum + myNumber[i];} // 모든 값을 더합니다. myNumber.indexOf('12') // 2 myNumber.indexOf('95') !== -1 // true 배열에 값의 위치를 출력, 없으면..

    [Git, Github] 사용법 정리 / workflow

    내가 생각한 쉬운용어 공식 명칭 내 컴퓨터 work space github와 내 컴퓨터와 중간 staging area github 예비 영역 local repository github 내 영역 origin repository github 다른(페어) 영역 remote repository 1. git init 우선 내 컴퓨터에서 내가 직접 만든 디렉토리를 (work space, staging area, local repository) Git의 관리 하에 들어가게 만들어 주는 명령어는 git init입니다. 기존 프로젝트를 Git Repository로 변환하거나 새로운 Repository를 초기화하는 데에 사용할 수 있습니다. Local Repository가 생성됩니다. 2. Fork 깃 허브 브라우저에서 ..

    [Git] 사용법 Together workflow

    요약 1. 내 컴퓨터에서 생성한 디렉토리를 init 명령어를 통해 Git의 관리 하에 들어가게 만들어 줍니다. 2. 내 컴퓨터의 Git 디렉토리를 Remote Repository와 연결시켜 줍니다. 3. pair의 변경 사항과 나의 변경 사항을 Remote Repository를 통해서 공유합니다. Together git init 하고자하는 프로젝트를 내 컴퓨터에만 존재하기 때문에 버전 관리를 위해 먼저 Git Repository로 변환시켜 줘야 합니다. 내 컴퓨터에서 내가 직접 만든 디렉토리를 Git의 관리 하에 들어가게 만들어 주는 명령어는 git init 입니다. Git init을 했을 때 아래의 그림은 디렉토리가 Git Repository로 변환한 것이고, 새로운 Repository 초기화 하는데도..

    [Git] 사용법 Alone workflow

    Alone workflow 1. Remote에 있는 다른 Repository에서 Fork를 해서 Remote에 있는 내 Repository에 가지고 옵니다. 깃허브 우측 상단의 Fork 버튼을 누르면 다음 화면이 뜨는 것을 확인하실 수 있습니다. 나의 유저 네임을 클릭하면 Fork 작업이 완료됩니다. GitHub.com의 내 계정에 Fork해서 들어온 kimcoding / git-project는 나의 Remote Repository (원격 저장소)입니다. 김코딩이 git-project를 Fork한 시점부터 이 git-project는 김코딩의 Repository에 복사본으로 저장된 것입니다. Fork가 완료된 상태는 내 Remote Repository에 git-project라는 이름의 Repository가..

    [Git] 깃?

    최종.psd 진짜_최종.psd.. 파일들이 점점 많아지면 PTSD가 오게 됩니다. 그리고 작업하던 파일을 편집 전 상태로 되돌리고 싶을 때에는, 편집하기 전에 파일을 미리 복사해 두는 것이 가장 쉬운 방법입니다. 파일과 폴더명 뒤에 편집한 날짜를 붙여 주는 방식이죠. 하지만 파일을 편집할 때마다 매번 손수 복사하는 일은 번거롭기도 하고 실수할 가능성이 다분합니다. 버전 관리라는 것 자체가 각 버전 별로 변경된 이력들을 저장하는 작업이라고 할 수 있습니다. 하나하나 추가되는 기능들의 변경 이력을 저장해 둘 수 있는 것입니다. 다시 이전 버전으로 되돌아가야 하는 상황이 발생할 경우 이전의 변경 이력들이 기록되어 있으니 되돌아가는 것이 가능하겠죠? 변경 사항을 저장할 때는 어떤 사항이 변경되었는지 코멘트를 꼭..