반응형

안녕하세요. 신기한 연구소입니다.

jQuery를 처음 하는 분들이 궁금해하는 부분이 있습니다.

 

jQuery를 공부하면 $를 사용하는데요. 이전 포스팅에서 이야기했듯 $는 jQuery에서 사용하는 특수 기호입니다.

원래 jQuery("p").remove(); 로 사용하는데 단축표기로 $("p").remove(); 로 쓰면 됩니다.

훨씬 짧고 깔끔하네요. 이렇게 약속을 한거니 jQuery개발자라면 바로 이해하겠지요.

$() 사용 방법은 이전 포스팅을 참고하세요.

2021.03.01 - [Software/jQuery] - [ jQuery/javascript]jQuery 기본 사용법에 대해 알아봅니다.

 

[ jQuery/javascript]jQuery 기본 사용법에 대해 알아봅니다.

안녕하세요. 신기한 연구소입니다. 오랜만에 프로젝트에 투입되었는데 jQuery를 사용하네요. ㅎㅎ 사용한 지 오래되어서 기억이 가물거립니다. 복습도 할 겸 포스팅을 해봅니다. 사실 일하면서

tiboy.tistory.com

작성일을 보니 2년이 훌쩍 지나버렸네요. 게으른 개발자입니다.

사실 다른 프로젝트로 옮겨 다니다 보니 jQuery 사용을 하지 않아서 잠깐 관심을 못가졌던겁니다.

그런데 제목을 보면 $와 $()에 대한 이야기로 되어 있는데요. 둘이 같은 거 아닌가요?

우리가 보통 jQuery를 사용할 때는 $()를 사용합니다.

아래 remove() 같은 메서드들은 jQuery 객체에서 호출되는데 $.fn 네임스페이스 또는 jQuery prototype이라고 하는데 jQuery 객체 메서드로 이해하는 것이 좋겠네요.

$("p").remove(); 

그럼 $는 무엇일까요?

$.trim();

위 소스를 보면 $에 ()가 없습니다. 그리고 바로 메서드를 호출합니다.

$('p') 객체에 jQuery메서드인 remove()를 실행한다는 의미의 $()와는 다르게 $는 core jQuery methods(코어 jQuery 메서드) 즉, utility method를 호출할 때 사용한다고 생각하면 됩니다.

바로 $.trim() 같은 경우입니다.

jQuery는 $ namespace로 여러 유틸리티 메서드들을 제공하고 있습니다.

일반적인 유형의 프로그래밍을 할 때 유용하게 사용할 수 있습니다.

특정한 DOM 객체를 지정해서 jQuery 메서드를 작동시키는 것과 달리$ namesapce 방식은 일반적은 데이터를 가지고 활용할 수 있습니다.

$.trim()으로 간단한 예제를 만들어보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!DOCTYPE html>
<html>
    <head>
        <title>tiBoyTest</title>        
        <script src="js/jquery-3.7.0.min.js"></script>
    </head>
    <body>
        <div id="test1">Test jQuery</div>
        
        <script>
            $(document).ready(function(){
                var a = '  asdfdf   ';
                alert(a);
                alert($.trim(a));
            });
        </script>
    </body>
</html> 
cs

 

위 예제를 보면 변수 a에 앞 뒤로 공백을 넣은 문자열 리터럴 값을 할당했습니다.

그리고 alert(a)를 하면 공백이 포함된 값이 팝업으로 뜹니다.

alert 창이 뜨면 'asdfdf' 글자 위에 마우스 우클릭 후 전체 선택을 하면 공백이 포함되었음을 확인할 수 있어요.

두 번째 alert($.trim(a))은 $ namespace로 utility 메서드인 trim()을 호출했습니다.

특정 DOM 객체 없이 변수값으로 메서드를 실행했고 결과는 앞 뒤에 있는 공백이 사라지게 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html>
    <head>
        <title>tiBoyTest</title>        
        <script src="js/jquery-3.7.0.min.js"></script>
    </head>
    <body>
        <div id="test1">Test jQuery</div>
        
        <script>
            $(document).ready(function(){
                debugger; 
                var myArray = [ 1234 ];
 
                if ( $.inArray( 4, myArray ) !== -1 ) {
                    console.log( "값이 존재함." );
                }
            });
        </script>
    </body>
</html> 
cs

 

하나 더 예를 들어 봅니다.

$.inArray 는 배열 내 지정한 값이 있으면 해당 index를 리턴합니다. 만약 일치하는 값이 없으면 -1을 리턴합니다.

위 예제를 보면 배열 내 값 4가 존재하므로 콘솔에 '값이 존재함'을 출력합니다.

정리하면,

jQuery에서 $기호는 jQuery를 단축 기호를 의미합니다.

$()는 $.fn 으로 DOM 객체를 선택하고 그 객체에 jQuery 메서드를 실행할 수 있게 합니다.

반면, $ namespace는 jQuery 내 유틸리티 메서드 (코어 메서드)를 실행할 때 사용합니다.

 

우리는 이제 jQuery에서 $와 $()를 이해했고 구분해서 사용할 수 있게 되었습니다.

utility methods는 jQuery 사이트에서 확인해 볼 수 있습니다.

슬슬 재미있어집니다.

반응형