성장 일기/쌍용교육센터 / / 2023. 3. 6. 09:11

0302/JSONArray, jQuery

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/html에 올려두었습니다.

 

JSONArray

  - JSONObject을 배열에 넣고 사용

  - [ { 이름:값...}, {이름:값...}, {이름:값...}...]

  - 배열 안에 JSONObject 객체가 여러 개 정의

//1. JSONArray 생성
var jsonArr
=[ { name:"김경태",age:24}, { name:"김규미",age:25}, { name:"윤상준",age:26}  ];

//2. 반복
var jsonObj;
for( var i =0; i < jsonArr.length; i++ ){
//3. 반복중인 방의 값을 변수 저장
jsonObj=jsonArr[i];  
//4. 값 얻기
jsonObj.이름
}

 

 

* 복합형태

  - JSONObject 안에 값으로 JSONArray가 들어있는 경우

이름 : 값... // 단일 값에 대한 저장( 검색 결과에 대한 부가적인 정보를 저장 )

이름 : [ {이름:값...}, {이름:값...}, {이름:값...}... ]
// 중복 값에 대한 저장 ( 검색결과에 대한 데이터를 저장 )


* closure
  - 접근제한을 변경할 때 사용( 함수 안에서 선언된 변수나 함수를 함수 외부에서 사용하기 위해 )

  - ( ) 사용, { } 사용 두 가지 형태로 사용할 수 있다.
  - ( )를 이용한 closure

 선언)
  var 변수명=( {이름:값,,, 이름 :function(){ 코드,,,,} ,,,}  );

 사용)
    변수명.이름
    변수명.함수명();

 

  - { } 사용한 closure ( 함수 안에 변수나 함수를 외부에서 접근 하기 위해 사용)

function(매개변수, ...){
var 변수명=값;
      
function 함수명(매개변수... ){
 }
}
// 정의된 함수 외부에서 사용할 수 없다.
// 사용하려면 아래처럼 closure로 변수와 함수를 연결하고 closure를 반환한다. 

////closure 사용
var 변수명= function(매개변수, ...){
var 변수명=값;
      
function 함수명(매개변수,,, ){
 }
             
return {이름:변수명, 이름: 함수명, ... };  
};

 

  - closure 예시

//매개변수 없음
var closure=function(){
var name="홍길동"
                   
function test( msg ){
return "메시지 : " + msg;
 } 
// 함수외부에서 사용할 이름과 내부의 이름 묶어주는 JSONObject을
// closure라고 한다. 
return { na : name, fun : test}; 
};

// 사용
// 무기명함수를 호출하여 closure를 얻고, closure의 이름으로
// 함수 안의 변수나 함수를 사용한다.
var name = closure().na;
var msg = closure().fun("헬로");


jQuery

  - 2006년 John Resig가 제작하여 발표
  - write less, do more – 적게 쓰고 많은 일을 하기 위해 개발된 JavaScript Library
  - 단순화 – 가독성 향상, 개발효율성이 향상
  - 웹 표준을 기반으로 개발되었음( 모든 웹 브라우저에서 동작- cross browsing )
  - CSS의  selector를 그대로 사용할 수 있다.
  - AJAX를 단순화
  - jquery.com에서 배포( compressed version, uncompressed version )

  - 다양한 CDN(Content Delivery Network)을 통해 배포
    ( 사용자가 있는 위치와 지리적으로 가장 가까운 복제서버에서 파일을 다운로드하는 기술 )
  - ajax, event, effect, DOM, plug in 제공
    ( plug in : 자바스크립트 개발자가 자주 사용되는 기술들을 미리 구현해 놓은 것 )

 

* compressed version

  - 압축버전- 기계중심
  - 프로그램에 반드시 필요한 공백만 남기고, 필요없는 주석, 엔터, 탭을
    삭제한 소스파일 => 파일의 크기가 축소
  - 단점 : 코드읽기가 어렵다.
  - 장점 : 파일이 가볍다.( 다운로드를 빠르게 수행 )
  - 파일명에 min이 들어간다.

* uncompressed version
  - 비압축버전 –사람중심
  - 주석, 엔터, 탭을 가지고 있는 소스파일
  - 장점 : 코드를 읽기가 편하다.( 수정 편함 )
  - 단점 : 파일이 용량 크다.

//1. 배포된 .js 를 HTML 에 외부파일방식으로 로딩( 또는 CDN 사용 )
<script type="text/javascript" src="URL"></script>

//2. <script> 새로 열어 코드 작성
<script type="text/javascript">
// 자바스크립트 문법 사용
// 외부파일 방식으로 연결된 .js 에서 제공하는 기능 => jQuery코드
</script>

// 문법
// $ - jQueryObject

$("selector").jquery함수( function (){  
// first class function : 함수가 데이터 형으로 사용되기 때문에
     코딩 문장
   });
 
   
// $ : jQuery Object
// ("selector") : selector에 해당하는 태그를 찾고
// jquery함수명 : 제공되는 기능을 적용
// function() : 개발자가 제공하는 기능으로 일 처리
$("selector").jquery함수명( function(){  

});


* jQuery 로딩

  - document 로딩 : HTML <body> 태그에 태그 정보가 로딩되면 jQuery 실행

// (document).ready 생략 가능
$(document).ready(function(){

});

 

  - window로딩 :  HTML 문서에 <body> 태그에서 사용되는 모든 객체가 로딩되면 실행

                                  load는 ready보다 로딩속도가 느리다.

 $(window).load(function(){
  
});


* jQuery Selector

  - CSS의 selector와 같다.

  - id selector사용

$("#id명").기능( function (){
//구현할 기능 
});

  - class select사용

$(".class명").기능( function (){
//구현할 기능 
});

 

  - tag selector

$("태그명").함수명( ... );

 

  - multiple selector

$( "태그명, ..." ).함수명( ... );

 

  - attribute selector

$("[속성명='값']").함수명( ... );

 

  - sub selector

$("부모태그명 > 자식태그명").함수명( ... );

 

  - behavior selector는 지원하지 않고 hover() 함수로 사용할 수 있다.

$("대상:hover").함수명( ... );  => $("selector").hover( ... );

// :odd – 홀수에 적용
// :even – 짝수에 적용
$("대상:odd").함수명( ... );
$("대상:even").함수명( ... );

 

 

'성장 일기 > 쌍용교육센터' 카테고리의 다른 글

0306/jQuery event  (0) 2023.03.06
0303/jQueryObject 함수  (0) 2023.03.06
0228/Storage, JSON  (0) 2023.03.06
0227/JavaScript  (0) 2023.02.27
0224/JavaScript  (0) 2023.02.24
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유