JavaScript 17

replace 의 두번째 function의 매개변수에 관하여...

JavaScript String 객체에는 replace 라는 함수가 있다. 일반적인 사용은 다음과 같다. > "Handsome Guy".replace("Guy","Sangpil") 'Handsome Sangpil' 하지만 복잡하게 사용할 수도 있다. 우선 첫번째로 "Guy" 대신, 정규표현식이 들어갈 수 있고, "Sangpil"대신 함수가 들어갈 수 있다. 다음처럼,... > "Handsome Guy".replace(/Guy/, function(){return "Sangpil";}); 'Handsome Sangpil' 이런 형태로 쓰일때, 함수는 기본적으로 다음과 같은 매개변수를 받게 된다. 첫번째 - 정규표현식과 일치하는 문자열 두번째 - 정규표현식 내에 존재하는 첫번째 구룹문자. 세번째 - 정규표현식..

learning 2011.01.27

HTML Target 속성에 지정된 값에 관하여...

HTML의 A 태그에는 target이라는 속성이 존재한다. 그리고 그 Target은 해당 액션의 결과를 표시할 창을 가리키는 속성값이다. 최근에 알게 된 사실이지만 이 속성값에도 아래와 같이 _top, _self 등과 같이 이미 지정된 값이 존재했다. _top 어느 프레임에서 아래 링크를 클릭하던, 해당 프레임을 포함한, 최고 상단 페이지가 이동한다. // JavaScript top.location.href = "http://blog.sangpire.pe.kr"; _self 현재 페이지 또는 프레임 주소만 변경. // JavaScript self.location.href = "http://blog.sangpire.pe.kr"; _parent 부모(parent)페이지를 이동. // JavaScript pa..

learning 2010.04.21

자바스크립트 this에 대한 오해와 진실(The this keyword of javascript)

기존에 내가 알고 있던 this 에 대한 이해 - 모든 메소드는 메소드를 실행하는 객체를 this로 가르킨다. 이건 오해였다. 그런가?.. 실제로 동작하는건 다음과 같았다. 우선 alertName 이라는 함수를 생각해 보자. var Babo = function() { this.name = "바보"; }; Babo.prototype.alertName = function() { alert(this.name); }; var babo = new Babo(); babo.alertName(); alertName은 위와 같이 단순히 this의 name 속성을 화면에 띄워주는 역할을 한다. 위의 예제를 실행하며, "바보"가 출력될 것이다. 다음과 같이 버튼의 onclick 이벤트에 함수를 할당 해주면, Who am I..

learning 2009.12.03

Javascript TDD 강의 링크

Intellectual Wanderlust 라는 블로그를 운용하고 계신 분이 만든 동영상 같습니다. 저는 Javascript Unit Test에 관한 내용을 찾다가, OKJSP 에서 발견하였습니다. 피보나치수열 함수를 구현하는 내용으로 23분 19초 정도 면 볼 수 있는 동영상인데. 정말 배울게 많은 동영상이네요. 마음대로 배포해도 된다고 적혀있어서 이렇게 퍼 옮니다. 나중에 다시금 보고 싶을 때, 찾을 수 없을까봐요.^^; 그럼.. Click~

learning 2009.10.26

How to read a URL query string?

예전에 URL에서 Query 문자열을 파싱하는 방법을 인터넷에서 찾아서 만든적이 있었다. 오늘 또 필요해졌는데, 바로 기억이 나지 않아서. 하나하나 차근 차근 다시 만들어 봤다. var pageEnv = { dojoPath:"/CTX/js/dojo1.3/dojo" }; (function() { var url = location.href; var qs = url.indexOf('?'); if (qs !== -1) { var queris = url.substring(qs+1, url.length); var pairs = queris.split('&'); for(var i in pairs) { var kv = pairs[i].split('='); pageEnv[kv[0]] = kv[1]; } } })(); 어..

learning 2009.07.09

Javascript 'A Module Pattern'

주중에.. Javascript The Good Parts의 저자이신 "Douglas Crockford"님의 Google 강연 비디오를 보다가.. 다음과 같은 멋진 코드 틀을 발견했다. 나도 다 알고 있던 사실인데.. Javascript에서.. 함수의 리턴은 객체인데 결국, Closure든 뭐든 대부분 될 수 있다. '()' 를 붙히면 실행된다. Closure만이 안고 있는 값들은 외부에서 참조할 수 없다.(사실 상의 Private 변수/메소드) 같은것 들? 아무튼, 한번도 저렇게 짜볼 생각은 못 했었다. 갑자기 지금까지 만들어 놓은 코드를 모두 수정하고 싶은 기분이 들었다.. (이 무슨 초딩 반성 일기 같은 말투람~) 다음은 그 문제의 강연 동영상...

learning 2009.03.08

How to Iterate javascript Map/Object properties.

오늘 회사의 다른 분이 만든 코드를 살펴보다 다음과 같은 코드를 발견하였다. 이거 너무 당연한 거 아닌가 할지 모르겠지만, 나 같은 초보에겐 너무 신기하고, '요긴한' 코드가 될 것 같아서 이렇게 정리하기로 했다. 우선 테스트 한 내용은 다음과 같다. 테스트 내용을 보니 따로 정리할 것이 없는 것 같다. 결론은 'for .. in ..' 으로 하나하나 참조할 수 있었던 것이다. 그동안 난 키값 만을 들고 있는 array를 만들어 쓰고 있었다. -_-" var testObj = { key1:'one', key2:'two' } for(key in testObj) { console.log(key); }

learning 2008.01.24