목록자바스크립트 (24)
함께 성장하는 프로독학러
안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 ES6의 method shorthand에 대해서 알아보겠습니다. 표현식부터 살펴보도록 하겠습니다. // 단축 메서드명 (ES6) var o = { property([parameters]) {}, get property() {}, set property(value) {}, * generator() {} };위와 같이 객체 안에서 메서드를 지정할 때 function을 생략할 수 있습니다. 이해를 돕기위해 예제를 살펴보겠습니다. 1234567891011var obj = { add: function (a, b){ return a+b; }, mult: function (a, b){ return a*b; }} console.log(obj.add(10, 5)); //..
안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 ES6의 computed property name에 대해서 알아보겠습니다. computed property name 는 객체의 key값을 표현식(변수, 함수 등을 이용)을 통해 지정하는 것입니다.사용법은 아래와 같습니다. var i = 0; var a = { ["foo" + ++i]: i, ["foo" + ++i]: i, ["foo" + ++i]: i };위에서 본 것과 같이 속성명에 표현식을 사용하려면 대괄호("[ ]") 안에 표현식을 쓰면 됩니다.표현식은 위에서와 같이 변수가 들어올 수도 있고, 함수가 들어올 수도 있습니다. 변수가 프로퍼티의 키로 들어오는 예제에 대해서 살펴봅시다. 12345678910var name1 = "장동건";var name2..
안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 배열의 filter 메서드에 대해서 알아보도록 하겠습니다.filter 메서드는 메서드의 이름과 같이 배열의 원소들 중 조건에 만족하는 원소들을 필터링 하는 메서드 입니다. 표현식부터 살펴보겠습니다. var new_array = arr.filter(callback[, thisArg])filter 메서드의 인자로는 콜백함수와 생략가능한 thisArg 값이 들어옵니다.콜백함수는 기존의 배열에서 필터링을 할 수 있도록 하는 함수입니다.이 함수의 인수는 element, index, array 입니다. 각각 배열의 원소, 해당 원소의 index값, filter 메서드를 행하는 대상 배열입니다.세 인수 중 index와 array는 생략이 가능합니다.filter 메서드..
안녕하세요, 프로독학러 입니다. 오늘은 배열과 문자열에서 사용 가능한, 검색을 위한 메서드인 indexOf 메서드에 대해서 알아보도록 하겠습니다. 먼저, 표현식부터 살펴 보겠습니다. arr/str.indexOf(searchElement/searchValue[, fromIndex])메서드의 첫 번째 인자로는 검색할 대상이 들어옵니다.(배열일 경우 검색할 엘리먼트, 문자열일 경우 검색할 문자)그리고 생략 가능한 두 번째 인자는 검색을 시작할 index입니다.만약 배열이라면 배열의 index값 (0 부터 시작해서 하나씩 증가)을 의미하며,문자열이라면 문자열 각각의 문자 하나하나를 의미합니다. (마찬가지로 첫 번째 글자부터 0, 1, 2, 3 ...) indexOf 메서드의 리턴값은 배열일 경우에 검색된 엘리먼..
안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 배열의 원소를 정렬하는 메서드인 sort 메서드에 대해서 알아보도록 하겠습니다. 표현식은 다음과 같습니다. arr.sort([compareFunction])sort메서드의 인자로는 배열의 원소를 비교하는 함수가 들어옵니다.만약 함수가 생략되면 각 문자의 유니코드 포인트 값에 따라 정렬됩니다.*유니코드 값에 대한 설명 - 네이버 지식백과 만약 함수가 생략되지 않는다면 compareFunction은 두 개의 인자를 받습니다.각각의 인자는 배열안의 비교대상인 a와 b입니다.그리고 sort 메서드의 정렬되는 기준은 compareFunction의 리턴값이 양수, 음수, 0 이냐에 따라 달라집니다. 이를 예제와 함께 알아보도록 하겠습니다. 12var arr = [2..
안녕하세요, 프로독학러 입니다. 오늘은 문자열 안에서 변수를 사용할 때 좀 더 직관적이고 편리한 방법인 Template literals에 대해서 알아보도록 하겠습니다. 알아보기 이전에, 기존 자바스크립트에서 문자열과 변수를 함께 사용하려면 어떤 방법을 사용했는지 살펴보도록 하겠습니다. 123var obj = {a:1, b:2};console.log('In the obj object, there are properties. a is '+obj.a+' and b is '+obj.b+'.');// In the obj object, there are properties. a is 1 and b is 2.cs 위의 예제에서 변수 obj 안에는 객체를 담았습니다.그리고 콘솔창에 obj객체를 설명한 글을 담았습니다...
안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 객체를 병합하는 메서드인 object.assign 메서드에 대해서 알아보도록 하겠습니다. 먼저 표현식 부터 보시겠습니다. Object.assign(target, ...sources)object.assign 메서드의 첫 번째 인자는 타겟입니다.두 번째 인자부터 마지막 인자까지는 소스 오브젝트입니다.소스 오브젝트는 타겟 오브젝트에 병합됩니다.그리고 리턴값으로 타겟오브젝트를 반환합니다. 이해를 돕기 위해 예제를 보겠습니다. 123var obj = {a:1};var copy = Object.assign({}, obj);console.log(copy); // {a: 1}cs 위의 예제에서 obj는 a라는 프로퍼티 하나를 가진 객체입니다.그리고 copy라는 변수에 ..
안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 함수를 정의하는 단계에서 파라메터(*파라메터=매개변수)의 기본값을 설정하는 것에 대해서 알아보겠습니다. 먼저 표현식을 보겠습니다. function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defaultValueN ]]]) { statements }함수의 이름을 정하는 name뒤에 오는 괄호안에 매개변수를 지정합니다. 이 때, 기본 값을 할당할 수 있습니다. 예제를 통해 이해해 봅시다. 123function add (a=0, b=10){ return a+b;}cs 위의 예제에서 add라는 함수를 정의할 때 파라메터를 적는 부분에 a=0, b=10이라고 정의 했습니다.값으로 들어오는 a와 b에 대해서 기본값을..
안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 직관적으로 이해하기 힘든 'this'란 녀석에 대해서 알아보도록 하겠습니다. 자바스크립트에서 this란 함수의 현재 실행 문맥을 의미합니다. 실행 문맥이란 단어가 익숙하지 않으신 분들을 위해 첨언 하자면, '함수가 실행되는 객체'라고 이해하시면 될 것 같습니다.전역에서 실행되고 있는 함수라면 전역객체 Window의 메소드가 실행 되는 것이므로 이때 함수의 this는 Window 객체 입니다. this가 현재 함수의 실행 문맥이라 했는데, javascript에는 4가지의 함수 실행 타입이 있습니다. 함수 실행 : alert('Hello world') 메소드 실행 : console.log('Hello world') 생성자 실행 : new RegExp("\d"..
안녕하세요, 프로독학러 입니다. 이번 포스팅에서는 ES6의 arrow function과 기존 자바스크립트의 함수선언(function declaration)의 차이점에 대해서 알아보도록 하겠습니다.ES6로 넘어오면서 arrow function이 기존의 함수선언을 완벽히 대체할 수 있을거라 생각하시는 분들이 계실 것 같은데요, (저 역시도 그렇게 생각했습니다) 둘은 같은 듯 하지만 다른점이 있습니다. 일단 이를 이해하기 위해서는 this에 대한 이해가 필요합니다.* this에 대해서 알아보려면 다음 링크를 참조하세요. ES6의 화살표함수(arrow function) 이전에는 모든 새로운 함수는 자신만의 this를 정의 했습니다(이 함수가 생성자인 경우는 새로운 객체, 엄격모드 함수 호출에서는 undefine..