javascript
-
옵셔널 체이닝(Optional Chaining)은 ES2020에서 등장한 새로운 연산자로서 '?.' 형태로 쓰인다. 접근하는 데이터가 유효한지 명시적으로 검증하지 않고 연결된 객체 체인 내에 깊숙히 위치한 속성 값을 읽을 수 있는 연산자이다. 참조된 값이 null 혹은 undefined 여도 에러로 뱉지 않고 undefined 값을 리턴한다. 함수 호출시에도 마찬가지로 값이 없다면 undefined를 리턴한다. 옵셔널 체이닝이 필요한 이유) 아래와 같이 user 객체의 info.name에 접근했지만 읽을 수 없는 TypeError가 나타났다. 당연히 존재하지 않는 값에 접근 했기 때문에 에러가 발생한다. const user = {}; console.log(user.info.name); * TypeErro..
옵셔널 체이닝(Optional Chaining) - ?.옵셔널 체이닝(Optional Chaining)은 ES2020에서 등장한 새로운 연산자로서 '?.' 형태로 쓰인다. 접근하는 데이터가 유효한지 명시적으로 검증하지 않고 연결된 객체 체인 내에 깊숙히 위치한 속성 값을 읽을 수 있는 연산자이다. 참조된 값이 null 혹은 undefined 여도 에러로 뱉지 않고 undefined 값을 리턴한다. 함수 호출시에도 마찬가지로 값이 없다면 undefined를 리턴한다. 옵셔널 체이닝이 필요한 이유) 아래와 같이 user 객체의 info.name에 접근했지만 읽을 수 없는 TypeError가 나타났다. 당연히 존재하지 않는 값에 접근 했기 때문에 에러가 발생한다. const user = {}; console.log(user.info.name); * TypeErro..
2022.08.16 -
가장 중요한 ordering의 옵션을 true로 설정한다.그 다음 rowReorder 옵션에 dataSrc 속성을 통해 순서 재정렬을 위한 seq 번호를 설정한다. * ordering 옵션을 설정 안할경우 테이블 리스트의 순서가 변경되지 않는다.let bannerDataTableOption = { scrollCollapse : false, select : false, language:eval(datatable_lang), dom : "t", autoWidth: false, ordering: true, searching: false, // 검색 기능 paging: false, //페이징 기능 processing: true, rowReorder: { ..
DataTables rowReorder 옵션 사용하기(테이블 재정렬)가장 중요한 ordering의 옵션을 true로 설정한다.그 다음 rowReorder 옵션에 dataSrc 속성을 통해 순서 재정렬을 위한 seq 번호를 설정한다. * ordering 옵션을 설정 안할경우 테이블 리스트의 순서가 변경되지 않는다.let bannerDataTableOption = { scrollCollapse : false, select : false, language:eval(datatable_lang), dom : "t", autoWidth: false, ordering: true, searching: false, // 검색 기능 paging: false, //페이징 기능 processing: true, rowReorder: { ..
2022.07.26 -
form 태그에 추가되어 있는 태그를 제외하고 다른 데이터를 파라미터로 추가 해야할 경우 사용한다.구성환경 : Spring boot + Thymeleaf 템플릿엔진 + Jquery html 저장 script Jquery 의 .serialize() 함수를 사용하면 Form 태그 안의 데이터들을 한번에 모두 보낼 수 있는 데이터로 직렬화 해주기 때문에 사용한다. Form data를 .serialize() 함수를 통해서 데이터 직렬화를 시키면 아래 이미지와 같다.위 이미지와 같이 "&" 표시와 함께 데이터가 표시된다. .serialize() 함수를 통해 form_data에 저장하고 추가할 데이터는 "&변수명=변수값" 으로 문자열을 추가해준다.그런 다음 .submit() 함수를 통해 Controll..
form 태그에 동적으로 파라미터 추가form 태그에 추가되어 있는 태그를 제외하고 다른 데이터를 파라미터로 추가 해야할 경우 사용한다.구성환경 : Spring boot + Thymeleaf 템플릿엔진 + Jquery html 저장 script Jquery 의 .serialize() 함수를 사용하면 Form 태그 안의 데이터들을 한번에 모두 보낼 수 있는 데이터로 직렬화 해주기 때문에 사용한다. Form data를 .serialize() 함수를 통해서 데이터 직렬화를 시키면 아래 이미지와 같다.위 이미지와 같이 "&" 표시와 함께 데이터가 표시된다. .serialize() 함수를 통해 form_data에 저장하고 추가할 데이터는 "&변수명=변수값" 으로 문자열을 추가해준다.그런 다음 .submit() 함수를 통해 Controll..
2022.07.12 -
웹 화면을 구현하면서 날짜뿐만이 아니라 시간까지 필요할때가 있다. 이때 jquery의 datetimepicker 라이브러리를 사용한다. 환경구성은 Spring Boot + Thymeleaf 템플릿 엔진 + jquery 사용 1. 다운로드 위치https://xdsoft.net/jqplugins/datetimepicker/ DateTimePickerDateTimePicker jQuery plugin select date and time Use this plugin to unobtrusively add a datetimepicker, datepicker or timepicker dropdown to your forms. It's easy to customize options. Source code on Git..
Jquery datetimepicker 기본 설정웹 화면을 구현하면서 날짜뿐만이 아니라 시간까지 필요할때가 있다. 이때 jquery의 datetimepicker 라이브러리를 사용한다. 환경구성은 Spring Boot + Thymeleaf 템플릿 엔진 + jquery 사용 1. 다운로드 위치https://xdsoft.net/jqplugins/datetimepicker/ DateTimePickerDateTimePicker jQuery plugin select date and time Use this plugin to unobtrusively add a datetimepicker, datepicker or timepicker dropdown to your forms. It's easy to customize options. Source code on Git..
2022.07.12 -
비동기 처리(Asynchronous Processing) 하나의 작업의 종료까지 기다리지 않고 다음 작업을 진행하는 비순차적인 처리 방식 자바스크립트는 싱글 스레드 기반의 언어이기 때문에 작업을 처리하는 공간(호출 스택)이 하나이다. 즉, 한번에 하나의 작업만 수행할 수 있다. 따라서 비동기적으로 실행되는 setTimeout, addEventListener 등 포함된 로직은 작성한 순서대로 실행되지 않는다. 아래 예제를 보자 console.log('AAAA'); setTimeout(function(){ console.log('BBBB'); }, 0); console.log('CCCC'); 위의 예상 결과는 1. AAAA 2. BBBB 3.CCCC 라고 생각했지만 그렇지 않았다. 이유는 자바스크립트 엔진의..
비동기 처리(Asynchronous Processing), 콜 스택(Call Stack), 이벤트 루프(Event Loop)비동기 처리(Asynchronous Processing) 하나의 작업의 종료까지 기다리지 않고 다음 작업을 진행하는 비순차적인 처리 방식 자바스크립트는 싱글 스레드 기반의 언어이기 때문에 작업을 처리하는 공간(호출 스택)이 하나이다. 즉, 한번에 하나의 작업만 수행할 수 있다. 따라서 비동기적으로 실행되는 setTimeout, addEventListener 등 포함된 로직은 작성한 순서대로 실행되지 않는다. 아래 예제를 보자 console.log('AAAA'); setTimeout(function(){ console.log('BBBB'); }, 0); console.log('CCCC'); 위의 예상 결과는 1. AAAA 2. BBBB 3.CCCC 라고 생각했지만 그렇지 않았다. 이유는 자바스크립트 엔진의..
2022.06.28 -
defer defer 속성은 위 방법처럼 하게되면 HTML 태그들을 모두 파싱하여 DOM 트리로 구성한 후 태그가 로드된다. 이러한 방법으로 렌더링 지연을 방지할 수 있다. 또 하나의 방법은 위에서 설명했듯이 태그의 defer 속성을 사용하는거다. - defer 속성 사용 HTML 태그들... 위 방법은 HTML 태그를 파싱하기전 script 태그의 속성인 defer 확인하고 자바스크립트 파일을 다운로드 하자고 명령만 시켜놓고 HTML 태그를 파싱하게 됩니다. HTML 태그 파싱이 모두 끝나면 미리 받아놓은 자바스크립트 파일을 로드하게 된다. 파싱하는 동안 필요한 자바스크립트 파일을 받아놓고 HTML 파싱이 완료 후 사용자에게 페이지를 보여준 다음 자바스크립트 파일을 실행하기 때문에 HTML의 파싱 DO..
defer, asyncdefer defer 속성은 위 방법처럼 하게되면 HTML 태그들을 모두 파싱하여 DOM 트리로 구성한 후 태그가 로드된다. 이러한 방법으로 렌더링 지연을 방지할 수 있다. 또 하나의 방법은 위에서 설명했듯이 태그의 defer 속성을 사용하는거다. - defer 속성 사용 HTML 태그들... 위 방법은 HTML 태그를 파싱하기전 script 태그의 속성인 defer 확인하고 자바스크립트 파일을 다운로드 하자고 명령만 시켜놓고 HTML 태그를 파싱하게 됩니다. HTML 태그 파싱이 모두 끝나면 미리 받아놓은 자바스크립트 파일을 로드하게 된다. 파싱하는 동안 필요한 자바스크립트 파일을 받아놓고 HTML 파싱이 완료 후 사용자에게 페이지를 보여준 다음 자바스크립트 파일을 실행하기 때문에 HTML의 파싱 DO..
2022.06.14