-
[JS/this] 자바스크립트, this의 4가지 역할Frontend 2019. 5. 30. 22:33
Javascript, This. 자바스크립트에는 this라는 키워드가 있다. this는 문맥에 따라서 다양한 값을 가지는 데, this가 쓰이는 함수를 어떤 방식으로 실행하느냐에 따라서 그 역할이 구별된다. this의 값들은 크게 4가지 정도로 나눌 수 있다. 즉, this를 이용하는 함수를 4가지 방식 중에서 어떤 방식으로 실행하느냐에 따라 this의 값이 결정된다는 뜻이다. 이러한 특성 때문에 this가 무엇을 지칭하는지 알기 위해서 우리는 this가 사용된 함수가 어디서 어떻게 실행되었는지를 찾아야만 한다. 1. 일반 함수 실행 방식 (Regular Function Call) 첫 번째로, 일반 함수 실행 방식으로 함수를 실행했을 때 this의 값은 Global Object를 가리킨다. 즉, 브라우저..
-
[JS/ES2015] 자바스크립트 ES2015(ES6) 문법 정리(1) - let / constFrontend 2019. 5. 17. 23:14
자바스크립트는 또 다른 말로 ECMA스크립트(ECMAScript, ES)라고도 불린다. ECMA스크립트는 Ecma 인터내셔널의 ECMA-262 기술 규격에 정의된 표준화된 스크립트 프로그래밍 언어이다. (라고 위키피디아에서 알려줬다.) Ecma 인터내셔널이란 곳에서 자바스크립트 공식문서를 만들고 표준화하는 작업을 하는 데, 이 과정은 모두 http://ecma-international.org/ 사이트에 공개되어 있다. 하여튼 이 자바스크립트 언어도 연도별로 버전이 나눠져있는데, 우리가 지금 주로 사용하는 문법은 2015년 이전에 개발된 ES5 버전이다. 그리고 2015년에 ES6 버전이 나왔는데, 기존에 사용하던 문법과 많이 다른 새로운 형태의 문법들이 추가되었다. 예를 들면 화살표 함수라던가 let이나..
-
[JS/디버깅] 개발자도구로 자바스크립트 디버깅하기(debugger)Frontend 2019. 5. 14. 15:20
디버깅(Debugging) 이란? 우리가 어떤 소스 코드를 작성하여 실행시켰을 때, 내가 원하는 결과가 나오지 않는다면 어떻게 해야할까? 가장 일반적으로 할 수 있는 방법은 내가 작성한 소스 코드를 위에서부터 한 줄씩 읽으면서 어느 부분에서 에러가 발생하였는지 차근 차근 짚고 넘어가는 방법이다. 바로 이러한 과정을 디버깅이라고 한다. 디버깅(Debugging)은 컴퓨터에서 발생한 오류를 찾기 위해 소스 코드를 한 줄씩 따라가면서 변수값의 변화를 검사하는 과정을 말한다. 이제 debugger라는 구문을 사용하여 개발자 도구로 자바스크립트 소스 코드를 디버깅하는 방법을 정리해보려고 한다. 코드를 짜면서 개발자 도구는 항상 사용하지만 console.log()나 console.dir()외에는 별로 사용할 줄 몰..
-
[C언어/Day2] C언어 수업정리 (정보처리기사, 실기) / 자바스크립트와 산술연산 결과가 다르게 나오는 이유Backend 2019. 5. 13. 12:11
1. 산술연산자 / 증감연산자 #include int main() { int num5 = 3, num6 = 3, num7 = 3, num8 = 3; num5++; // ++num5; num5=num5+1; num5+=1; printf("num5= %d \n", num5); ++num6; // num6++; num6=num6+1; num6+=1; printf("num6= %d \n", num6); num7--; // --num7; num7=num7-1; num7-=1; printf("num7= %d \n", num7); --num8; // num8--; num8=num8-1; num8-=1; printf("num8= %d \n", num8); system("pause"); return 0; } 자바스크립트..
-
[알고리즘/자바스크립트] 페이지네이션 헬퍼 (Pagination Helper)Algorithm 2019. 5. 12. 23:22
[문제] 여러분은 PaginationHelper 생성자 함수를 완성해서 Rhaegal의 페이지 세는 작업을 도와주어야 합니다. 이 PaginationHelper는 글자들이 들어있는 배열(collection)과, 한 페이지에 얼마나 많은 글자를 가질 수 있는지 알려주는 숫자(itemsPerPage)을 가질 수 있게 설계되었습니다. 다음의 예를 통해 이 class를 어떻게 사용할 수 있는지 알아봅시다. var helper = new PaginationHelper(['a','b','c','d','e','f'], 4); // PraginationHelper를 사용하기 위해 helper 객체를 생성합니다. // helper instance는 다음과 같이 사용할 수 있습니다. helper.pageCount(); /..
-
[알고리즘/자바스크립트] 꼬리에 붙은 0 (팩토리얼과 Trailing Zero)Algorithm 2019. 5. 12. 20:38
[문제] 주어진 숫자의 팩토리얼을 계산한 값에서, 마지막에 연속되어 붙어있는 0이 몇개인지 반환해주는 함수를 완성해주세요! (팩토리얼을 계산하지 않고 구하기!) 참고로, N 팩토리얼이란 다음과 같은 것을 말합니다. (factorial은 !로 표기합니다. 더 많은 내용은 http://mathworld.wolfram.com/Factorial.html를 참고해주세요) N! = 1 * 2 * 3 * ... * N 예를들어, trailingZeros(6) = 1 왜냐하면, 6! = 1 * 2 * 3 * 4 * 5 * 6 = 720 --> 1 , 끝에 1개의 0이 있습니다. trailingZeros(12) = 2 12! = 479001600 --> 2, 꼬리에 2개의 0이 있습니다. @param {number} n..
-
[알고리즘/자바스크립트] 괄호 짝 찾기 (Valid Braces)Algorithm 2019. 5. 3. 17:28
-해당 문제는 codewars사이트의 level6 문제입니다. (1~8단계 중 8단계가 가장 쉬운 레벨)- [문제] 괄호들로 이루어진 string을 입력받아서, 괄호들의 순서가 올바른지 판단해주는 함수를 완성해주세요! 괄호들은 ()와 {}와 [], 이렇게 총 3가지 종류가 있습니다. 괄호들은 자기와 짝이 맞는 괄호를 만나야만 합니다. 다음의 예를 봐주세요, validBraces("(){}[]") // => True validBraces("([{}])") // => True validBraces("(}") // => False validBraces("[(])") // => False validBraces("[({})](]") // => False * @param {string} braces * @retur..
-
[JS/호이스팅] Interpreted Language인 자바스크립트의 호이스팅(Hoisting)에 대하여Frontend 2019. 5. 3. 13:16
자바스크립트, 인터프리터 언어(Interpreted Language) 보통 우리가 사용하는 프로그래밍 언어는 고급 언어(High Level Language), 컴파일러 언어라고도 한다. 즉, 기계가 이해할 수 있는 0과 1로 표현된 2진수 언어가 아니라 인간이 이해하기 쉬운 자연어와 비슷한 구조를 갖는 언어를 말한다. 이러한 고급 언어를 사용하여 프로그래밍을 하면 반드시 기계어로 번역하는 과정을 필수적으로 거쳐야 하는데, 그 과정에서 사용되는 번역기에는 두 종류가 있다. 바로 컴파일러와 인터프리터이다. 컴파일러를 사용하는 고급 언어를 우리는 Compiled Language라고 한다. 대표적인 Compiled Language에는 C언어가 있다. 컴파일러를 사용하면 프로그램 전체를 목적 프로그램으로 번역한 ..
-
[JS/스코프] 자바스크립트 스코프(scope)와 즉시실행함수(IIFE)Frontend 2019. 5. 2. 16:02
스코프(scope) 스코프란 일종의 "범위"와 같은 것이다. 어떤 변수를 선언하였을 때, 그 변수에 접근할 수 있는 범위라고 생각하면 쉽니다. 스코프에는 Global(전역)과 Local(지역)이 있는데, Global scope는 말 그대로 어떤 함수에 종속되어있지 않고 어디서나 접근할 수 있는 전역 범위를 말한다. 반면, Local scope는 어떤 함수나 블록 단위로 국한되는 범위를 말한다. 만약에 Global scope에 어떤 변수가 선언되었다면, 그 변수는 Global Variable(전역 변수)가 된다. 반면, 어떤 변수가 Local scope에 선언되었다면, Local Variable(지역 변수)가 된다. 위 그림에서 파란색 영역이 Global scope, 보라색 영역이 Local scope이다..
-
[알고리즘/자바스크립트] 페이지 카운트 (Page Count)Algorithm 2019. 5. 1. 19:14
[문제] Viserion은 예민한 사람들이 많은 도서관에서 공부를 합니다. Viserion은 한번에 특정 페이지를 열지 못하고, 교과서의 맨 앞장이나 맨 뒷장부터 차례로 넘길 수만 있습니다. 그래서 책을 넘기는 소리를 적게 내는 방법을 고민해야 합니다. 또한 항상 한번에 한페이지만 넘길 수 있습니다. Viserion이 책 앞장을 펼치면, 항상 1페이지는 오른쪽에 있습니다. * _________________________________ * | : | * | : | * | : | * | : 1page | * |_______________ : _______________| 1페이에서 한장을 넘기면, 다음 장에는 2페이지와 3페이지가 있습니다. * _________________________________ ..