반응형

개발/Java Script 12

[JS] JavaScript 동작 원리

Async이번엔 좀 늦은 감이 있지만 자바스크립트가 어떻게 동작하는지에 대해서 알아보겠다.Introduce자바스크립트는 싱글 스레드 기반으로 Java, C, Python 과 다르게 먼저 실행된 코드가 완료되기 전에 해당 코드보다 나중에 실행된 코드가 더 먼저 끝날 수 있다.다음의 코드의 결과는 1, 2 순서로 출력이 된다. b() 함수를 먼저 호출했는데도...function a () { setTimeout(() => { console.log("1"); }, 1000); } function b() { setTimeout(()=> { console.log(2); }, 3000); } b(); a(); // 1 // 2 Call Stack자바스크립트 엔진은 메모리 힙과 단일 Call Stack을 가지고 있다...

개발/Java Script 2018.03.08

[JS] variable || {}

Socket.io 모듈을 까보다가 다음과 같은 코드를 발견했다. test = test || {} 이런 코드는 처음봐서 stackoverflow 에 검색을 해보았다.나랑 똑같은 질문을 한 사람이 있었다. 답변에는 왼쪽에 있는 변수(test)가 false, undefined, 0, null etc 일 때 오른쪽 값으로 넣는다는 것이다. 그냥 쉽게 다른 언어들에 있는 OR 문을 생각하면 될 것 같다. var a = undefined; a = a || {}; console.log("a : "+ a); // "a : [object Object]" var a = 0; a = a || {}; console.log("a : "+ a); // "a : [object Object]" var a = 1; a = a || {..

개발/Java Script 2018.03.06

[JS] 자바스크립트에서 call 과 apply 에서의 this

Underscore.js 의 each() 함수를 분석하다가 optimizeCb() 라는 함수를 each() 함수 안에서 사용하길래 해당 함수를 또 까보니까 apply() 와 call() 이란 함수를 사용하고 있었다. 대충 보니까 비슷한 용도 같은데 달랐다. function plus(val_1, val_2) { return val_1 + val_2; }; function applyTest(val_1, val_2){ // return plus.apply(this, arguments); // 4 return plus.apply(this, [val_1, val_2]); // 4 }; function callTest(val_1, val_2){ // return plus.call(this, arguments); /..

개발/Java Script 2017.11.24

[JS] Visual Studio Code 에서 모듈 설치하기 (Underscore 를 예시로)

Visual Studio Code 에서 Underscore.js 설치하기 npm 사용은 처음이라서 간단한 부분이여도 많이 힘들었다.. 조금 많이 하기 싫었는데 그래도 재밌게 코딩하는 상상하면서 설치했다. 우선 우리는 npm 이라는 것을 사용할 것이다 ## npm? 글을 쓰다보니 npm 이 뭔지 모른다는 것이 생각났다. >> npm 이란 Node Package Modules 의 약자로 Node.js 에서 사용가능한 모듈들을 패키지화시켜 모아놓은 것. 이라고 한다. 그래서 npm 을 통해 일일이 개발하지 않아도 누군가 올려놓은 모듈을 다운로드 받아서 모듈에 대한 기능을 사용할 수 있는 것이다. npm 설치는 알아서 하자. 이 글은 Underscore 모듈을 설치하는데 의의를 둔 글이니까..★ [사진 1: v..

개발/Java Script 2017.11.24

[JS] Ramda

Ramda js람다 대수란?이론 컴퓨터과학 및 수리논리학에서 함수 정의, 함수 적용, 귀납적 함수를 추상화한 형식 체계이다. - 위키백과람다 대수는 이름을 가질 필요가 없다. (익명함수)두 개 이상의 입력이 있는 함수는 최종적으로 1개의 입력만 받는 람다 대수로 단순화 될 수 있다. (커링)람다의 특징익명보통의 메소드와 달리 이름이 없음함수클래스에 종속되는 메소드와 달리 함수라고 함전달매개변수로 전달이 가능. 또한, 함수를 변수에 저장할 수 있음 (Java 8)간결성Ramda 를 알기 전 간단한 람다 예제 var a = [ "1", "2", "3", "4", "5" ]; var a2 = a.map(function(s){return s.length}); // 람다식 var a3 = a.map(s => s...

개발/Java Script 2017.11.10

[JS] Closer 란?

Closer클로저는 외부함수에 있는 변수에 접근할 수 있는 내부함수를 말함.간단하게 클로저는 이런 것이다~ 라고 할 수 있는 코드는 다음과 같다. function init() { var name = "hojak"; // name 은 init 에 의해 생성된 지역변수 function displayName() { // displayName()은 내부함수이며 클로저이다 alert(name); // 외부함수에서 선언된 변수를 사용한다 } displayName(); } init(); init() 함수를 보면 displayName() 함수에서 init() 함수의 지역변수인 name 을 사용하고 있다. 내부 함수는 외부 함수에 접근할 권한을 가지고 있기 때문에 displayName() 함수는 외부 함수인 init()..

개발/Java Script 2017.11.07

[JS] 함수형 프로그래밍 2주차 - RxJS 란

RxJS 란?RxJs 에 대한 정의를 알아가기 전, 알고 넘어가야 할 것들이 있다. Reactive> Programming 이다. 왜냐하면 바로 이 Reactive Programming 으로 만든 라이브러리가 RxJs 이기 때문이다.Reactive Programming그렇다면 Reactive Programming 의 정의란 무엇일까? Reactive Programming 은 비동기 데이터 스트림을 사용한 프로그래밍이다. 해당 스트림을 듣고 이에 따라 대응할 수 있다. Reactive Programming 에서는 기본적으로 모든 것을 Stream 으로 본다고 한다. 즉, 이벤트, ajax 등 모든 데이터의 흐름을 시간순서에 의해 전달되어지는 스트림으로 처리한다는 말이다.위의 내용들은 Reactive Pro..

개발/Java Script 2017.10.30

[JS] 자바스크립트 자동으로 버튼 클릭하기

위와 같은 버튼이 있다고 했을 때, 이 버튼을 클릭했을 때 해당 "create_memo" 란 id 를 가진 버튼을 한 번 더 자동으로 클릭되도록 하고 싶다. stackoverflow 에서는 다음과 같은 코드로 해결하라고 많은 사람들이 그런다. document.getElementById("create_memo").click(); 다음과 같은 코드를 작성했지만 작동하지 않는다. 하지만 다음의 코드는 작동을 한다. document.getElementById("cancel_memo").click(); 다시 본론으로 돌아와 "create_memo" 란 id 를 가진 버튼을 자동으로 클릭되게 하려면 코드를 어떻게 수정해야 할까? document.getElementById("create_memo")[0].click(..

개발/Java Script 2017.10.26
반응형