자바스크립트 11

[JS]Object.key(obj)

Ojbect.keys() 출처 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys Syntax Object.keys(obj) Object.keys 함수는 매개변수로 받은 Object 의 속성인덱스를 요소로 하는 배열을 반환한다. 실제 for ... in 반복문에서 prop 속성을 구하는 것과 같다. 차이점이라면 for ... in 루프는 프로토타입 체인까지 검색한다는데 있다. 어엣건 얘도 ecma5 스펙이라 익스 9이하는 지원하지 않는다. 하지만 babel 이 있지 않는가.. 맘껏 쓰자. 예시 var arr = ['a', 'b', 'c']; console.log(Object.keys(ar..

코드/JS 2016.06.09

[JS] 익스플로러 버전 알기

개인적으로 마이크로 소프트는 브라우저를 안 만들었으면 좋겠지만, 정말 꾸준히도 만들고 있다. 정말 매 버전마다 이렇게 못 만들기도 어려울거같다 됐고 스크립트로 익스플로러의 버전 넘버를 알기 위한 스크립트다 function msieversion() { var ua = window.navigator.userAgent var msie = ua.indexOf ( "MSIE " ) if ( msie > 0 ) // If Internet Explorer, return version number return parseInt (ua.substring (msie+5, ua.indexOf (".", msie ))) else // If another browser, return 0 return 0; } 출처 : https:..

코드/JS 2015.09.12

[정규표현식] 자바스크립트 역참조

정규표현식 구현에 따라 역참조를 표시하는 방법을 바꿔야한다..NET, 펄 에서는 역참조를 사용할때, $를 사용 자바스크립트 사용자는 $ ( 달러 기호) 대신 \ (역슬래시)를 써야하며콜드퓨전 사용자는 검색과 치환에 모두 \n ( 역슬래시 )를 써야 한다. RegExp.$1자바스크립트에서는 정규표현식을 실행한 다음 RegExp 전역객체에서 관련 정보를 얻을수 있다.

함수의 프로토타입 속성

모든 함수 객체는 생성될때 자동으로 prototype 라는 속성이 추가된다. 이 prototype 속성은 함수의 생성과 동시에 만들어지는 함수의 원형 객체 즉 ‘함수의 프로토타입(원형) 객체’ 를 참조한다 생성자 함수를 이용해 생성되는 객체들은 함수의 프로토타입(원형) 객체 를 __proto__ 속성을 통해 공유하게 된다. 즉 함수를 만들게 되면 자동으로 함수의 프로토타입 객체(원형)가 생성되고, 함수는 생성과 동시에 추가된 prototype 이라는 속성으로 이 객체를 참조하고 있다 모든 함수는 생성될때 함수의 원형객체, 즉 프로토 타입 객체가 같이 생성된다. 함수는 생성과 동시에 추가되는 prototype 속성을 통해 함수의 원형객체를 참조한다. 생성자 함수를 통해 만들어지는 모든 객체는 __proto..

코드/JS 2015.04.21

컨텍스트, 스코프 체인

컨텍스트란 현재 실행되고 있는 코드를 소유하는 객체에 대한 참조 즉 this 에 대한 참조 다 자바스크립트 언어 환경에서 모든 함수는 생성될때 하나의 스코프 체인을 가진다. 스코프 체인은 함수의 호출과 관련된 여러 객체(기본적으로 글로벌 객체등)의 참조를 저장하는 메모리 공간이다. 스코프체인은 기본적으로 키와 값의 구조로 되어 있으며, 스코프 체인의 안쪽에 들어가는 객체들을 변수 객체라 한다. 생성된 스코프 체인의 내부에는 먼저 전역 객체(Global Object) 가 체인의 안쪽으로 자리잡게 된다. 이 공간을 흔히 전역 컨텍스트 ( Global Context ) 라고 하기도 한다. javascript 에서 this 란 현재 실행되고 있는 코드를 소유하는 객체, 즉 메모리 공간말하며 context 에 대..

코드/JS 2015.04.21

자바스크립트 배열 중복요소 추출

이런 배열이 있을 때, var arr = [1, 2, 3, 4,5,6,7, 1, 3, 5, 6, 2, 7, 1,4, 4, 100, 20, 4] [1, 1, 1][3, 3][4, 4, 4, 4]..... 이런식으로 중복되는 배열요소를 추출해서 각각 따로 배열로 만들어야 할 필요가 있었다.한참 헤매다 우왕님께 물어서 우왕아항님이 던져주신 힌트. function getMap(arr) { var resultMap = {}; for (var i in arr) { if (!(arr[i] in resultMap)) resultMap[arr[i]] = []; resultMap[arr[i]].push(arr[i]); } return resultMap; } 이러면 되는걸 너무 이상하게 생각했나보다

코드/JS 2015.04.20

자바스크립트기초 - 프로토타입

출처 : http://insanehong.kr/post/javascript-prototype/ Javascript 기초 - Object prototype 이해하기 소개이번 글에서 다룰 내용은 자바스크립트의 프로토타입 상속(prototypal inheritance) 이라는 확장과 객체의 재사용을 가능하게 해주며 class 기반으로 인스턴스를 생성하지 않는 자바스크립트에서 객체지향적인 개발 개념을 가질수 있게 해주는 Prototype에 대한 내용이다. 하지만 일반적으로 자바스크립트에 대한 정공파가 아니면 제대로 이해하고 있지 않거나 이해 하기 힘든 부분이기도 하다. 그이유는 Prototype Object 와 Prototype Link을 제대로 구분하여 인지 하지 못하고 있기 때문일 것이다. 이번글을 통해서 ..

코드/JS 2013.12.06

컨텍스트, 스코프

출처 : http://devthewild.tistory.com/44 컨텍스트 vs 스코프 일단 명확히 해야할 중요한 것은, 컨텍스트와 스코프는 다른 것이라는 점이다. 부정확하게 두가지를 동시에 설명해서(?), 두 단어를 헷갈리는 많은 개발자들에게 지난 몇년간 이야기해왔다. 다시 말하자면, 단어 때문에 몇년동안 혼란스러웠던 것이다. 모든 함수의 실행은 스코프, 그리고 스코프와 연결된 컨텐스트를 갖는다. 근본적으로 따지자면, 스코프는 함수 기반이고, 컨텐스트는 객체 기반이다. 다시 설명하자면, 스코프는 함수가 실행될 때, 그리고 각각의 실행에 대해서 그 함수의 접근이 달라지는 것을 말한다. 컨텍스트는 항상 this 키워드의 값이며, 현재 실행되는 코드를 "소유하는" 객체의 레퍼런스를 가리킨다.

코드/JS 2013.12.05