JavaScript 10

[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]Mustache template

Mustache 템플릿으로 반복문을 사용할때 그냥 배열 객체를 던져주고 싶은 경우가 있다 보통은 다음과 같다 /* Js */ var tpl = $('#tpl_item').html(); var obj = { items:['item-1','item-2','item-3'] } var html = Mustache.render(tpl, obj) 이렇게 할수 있지만 다른 데이터 없이 단순히 배열하나만 던질경우에는 /* Js */ var tpl = $('#tpl_item').html(); var obj = ['item-1','item-2','item-3'] var html = Mustache.render(tpl, obj); 이럼 된다. 간단하다

코드/JS 2016.02.27

[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

[JS] indexOf

자바스크립트 함수중에 자주 쓰는 함수 indexOf 성능은 별로라고 알고 있다, 더글라스크록포드 책이었던가 어디에서 언뜻 본기억이..가물 String.indexOf(searchValue[, fromIndex]); searchValue 는 뭐 알겠지만, 검색할 문자열 일치하는 문자열이 있으면 해당 문자열의 인덱스 값을 반환한다. 일치하는게 없으면 -1 을 반환한다 옵션으로 들어가는 fromIndex 는 정수값을 줄 수 있다 정수값을 줄 경우 그 값에 해당하는 인덱스 이후 부터 searchValue 를 검색한다 var str = 'abcdefghijklmn'; var a = str.indexOf('c',0); // 2 var b = str.indexOf('c',1); // 2 var c = str.index..

코드/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