foo; // 'undefined' foo(); // this raises a TypeError var foo = function() {}; Due to the fact that var is a declaration, that hoists(=올리다.) the variable name foo before the actual execution of the code starts, foo is already defined when the script gets executed. JavaScript Garden 즉 다음과 같은 코드로 해석된다는 이야기. var foo; foo; // 'undefined' foo(); // this raises a TypeError foo = function() {};
빈 객체가 생성되면, new 연산자는 해당 객체의 프로토타입을 설정한다. 이때 생성된 객체는 자신을 만들어낸 생성자의 prototype 값을 자신의 프로토타입으로 설정한다. 모든 함수에는 prototype이라는 프로퍼티가 있는데, 이것은 함수가 정의될 때 부터 자동으로 새성되고 초기화 된다. prototype 프로퍼티의 초기값은 프로퍼티가 하나 있는 개체로 지정된다. 이 프로퍼티는 constructor 라고 불리우는 데 프로토타입이 연관되어 있는 생성자 함수를 가르킨다. 자바스크립트 완변가이드, 202 페이지
JavaScript String 객체에는 replace 라는 함수가 있다. 일반적인 사용은 다음과 같다. > "Handsome Guy".replace("Guy","Sangpil") 'Handsome Sangpil' 하지만 복잡하게 사용할 수도 있다. 우선 첫번째로 "Guy" 대신, 정규표현식이 들어갈 수 있고, "Sangpil"대신 함수가 들어갈 수 있다. 다음처럼,... > "Handsome Guy".replace(/Guy/, function(){return "Sangpil";}); 'Handsome Sangpil' 이런 형태로 쓰일때, 함수는 기본적으로 다음과 같은 매개변수를 받게 된다. 첫번째 - 정규표현식과 일치하는 문자열 두번째 - 정규표현식 내에 존재하는 첫번째 구룹문자. 세번째 - 정규표현식..
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..
기존에 내가 알고 있던 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..
Intellectual Wanderlust 라는 블로그를 운용하고 계신 분이 만든 동영상 같습니다. 저는 Javascript Unit Test에 관한 내용을 찾다가, OKJSP 에서 발견하였습니다. 피보나치수열 함수를 구현하는 내용으로 23분 19초 정도 면 볼 수 있는 동영상인데. 정말 배울게 많은 동영상이네요. 마음대로 배포해도 된다고 적혀있어서 이렇게 퍼 옮니다. 나중에 다시금 보고 싶을 때, 찾을 수 없을까봐요.^^; 그럼.. Click~
예전에 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]; } } })(); 어..
주중에.. Javascript The Good Parts의 저자이신 "Douglas Crockford"님의 Google 강연 비디오를 보다가.. 다음과 같은 멋진 코드 틀을 발견했다. 나도 다 알고 있던 사실인데.. Javascript에서.. 함수의 리턴은 객체인데 결국, Closure든 뭐든 대부분 될 수 있다. '()' 를 붙히면 실행된다. Closure만이 안고 있는 값들은 외부에서 참조할 수 없다.(사실 상의 Private 변수/메소드) 같은것 들? 아무튼, 한번도 저렇게 짜볼 생각은 못 했었다. 갑자기 지금까지 만들어 놓은 코드를 모두 수정하고 싶은 기분이 들었다.. (이 무슨 초딩 반성 일기 같은 말투람~) 다음은 그 문제의 강연 동영상...
- Total
- Today
- Yesterday
- dojo
- React
- Windows
- console
- Git
- 스프링인액션
- Node.js
- reactiveprogramming
- 리액티브프로그래밍
- 빔
- Coffeescript
- 커피스크립트
- Widget
- intellij
- Configuration
- 자바스크립트
- Commonjs
- JavaScript
- 리액터
- REACTOR
- gvim
- tipoftheday
- 윈도우즈
- VI
- unit test
- Java
- maven
- VIM
- 자바
- Eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |