음 아마 비둘기보단 똑똑할꺼야
준돌 Jundol / 2015.06.11 15:28 / JavaScript/Core



!! [double exclamation mark]

주로 타입을 boolean 으로 변경할 때 사용한다.


느낌표가 한 개 일때는 not 이라는 표현이다.

두개일 때는 not not


자 이제 프로그래밍 언어에서 0은 false란 뜻이고 0이외의 숫자는 true 라는 의미이다.

또한 객체는 true 다.

하지만 이걸 true 혹은 false 로 boolean 형태로 나타내고 싶다면

! [exclamation mark] 를 사용하면 된다.

별로 좋은 방법은 아니라고 생각한다. 가독성 면에서 떨어진다랄까?


! 은 Not , !true 는 false , !false 는 true , !0 은 true , !1 은 false

어떠한 타입이건 boolean 타입으로 변경이 가능하다.

준돌 Jundol / 2015.06.10 17:05 / JavaScript/Core


Document.createEvent()

DOM 레벨 2 이벤트

지원 브라우저
크롬 15, FF 11, Opera 11.6, Safari 6
IE는 DOM Events 모듈을 지원하지 않기 때문에 지원되지않는다.

Event createEvent(String eventType)

         throws DOMException

반환값
지정된 타입을 갖는 새로 생성된 Event 객체.

전달인자
eventType --> 원하는 Event 객체에 대한 이벤트 모듈의 이름.

예외 
현재 구현이 요청된 타입의 이벤트를 지원하지 않으면, code 값이 NOT_SUPPORTED_ERR 인 DOMException 을 발생시킨다.

설명
파라미터로 전달받은 이벤트타입을 갖는 새 이벤트 객체를 생성한다. 주의점은 파라미터의 값이 생성할 인터페이스(단수형)의 이름이 아니라 해당 인터페이스를 정의하는 DOM모듈(복수형)의 이름이어야 한다는 것이다. 


 eventType 전달인자

이벤트 인터페이스 

초기화 메소드 

HTMLEvents 

Event 

initEvent() 

MouseEvents 

MouseEvent 

initMouseEvent() 

UIEvents 

UIEvent 

initUIEvent() 


Document.createEvent() 메소드로 Event객체를 생성한 후에는 반드시 위 표에 있는 초기화 메소드를 이용해서 그 객체를 초기화 해야한다.


예제
구식방법
자바에서 영감을받아 작성한 구식이벤트 발생방법.

// Create the event.
var event = document.createEvent('Event');

// Define that the event name is 'build'.
event.initEvent('build', true, true);

// Listen for the event.
document.addEventListener('build', function (e) {
  // e.target matches document from above
}, false);

// target can be any Element or other EventTarget.
document.dispatchEvent(event);

이벤트를 정의하는 굉장히 오래된 기법이다. 없어질 기법이라고 봐도 무방할것 같다.

참고
1. 자바스크립트 완벽가이드 별책 page.1010
2. 모질라 개발자네트워크
https://developer.mozilla.org/en-US/docs/Web/API/Document/createEvent

준돌 Jundol / 2015.05.14 12:42 / jQuery[제이쿼리]

jQuery.fn & jQuery.fn.extend()



가끔 라이브러리 혹은 타 개발자가 작성한 소스코드를 보다보면 jQuery.fn 이 간혹 보이는데

기초가 부족한 필자는 jQuery.fn 이 뭔지 몰랐다.

찾아보니...


In jQuery, the fn property is just an alias to the prototype property.

그냥 가명이란다... 프로토타입의 가명으로 fn 을 사용한다고 한다.


jQuery.fn = jQuery.prototype = {

       //...

}

그렇다하면~ jQuery.fn.extend() 는 jQuery 를 확장 즉 커스터마이징 한다는 뜻이다.

jQuery 의 기본 함수에 추가하는 내가 쓰고자 하는 함수를 넣어서 확장시킬 수 있다.


<script>
jQuery.fn.extend({
check: function() {
return this.each(function() {
this.checked = true;
});
},
uncheck: function() {
return this.each(function() {
this.checked = false;
});
}
});
// Use the newly created .check() method
$( "input[type='checkbox']" ).check();
</script>


요로케~ 확장이 가능하다.


출처

1. stackoverflow
http://stackoverflow.com/questions/4083351/what-does-jquery-fn-mean

2. jQuery
http://api.jquery.com/jquery.fn.extend/

'jQuery[제이쿼리]' 카테고리의 다른 글

jquery.toggle()  (0) 2015.06.12
jQuery.fn.extend()  (0) 2015.05.14
© 2015 Jundol in 음 아마 비둘기보단 똑똑할꺼야
Designed by DH / Powered by Tistory
199 / 16 / 93,565