앞의 글에서 Promise에 대해 간략히 알아보았다. 위에처럼 비동기 Promise를 사용시 then 또는 catch를 통해 반환 받을 수 있었다. 이외에도 awit를 통해서도 똑같이 사용할 수 있다. // as-is promise() .then(result =>{ console.log(result); }) // to Be let result = await promise(); console.log(result); 위의 코드는 같은 결과로 출력된다. 또한 함수를 선언할 때 function 키워드 앞에 async를 붙여주면 해당 함수를 호출 했을 때 함수내부에서 반환한 값을 이행하는 Promise를 반환한다. async function promise() { return "결과" } promise() .the..
자바스크립트에서는 비동기 프로그래밍을 자연스럽게 습득하게 된다. 이를 대표하는게 자바스크립트 Promise이다. Promise의 기본적인 구조는 아래와 같다. const promise = new Promise((resolve, reject) => { // resolve, reject의 타입은 함수타입이다. }); Promise는 resolve와 reject를 파라미터로 받아오는 함수로 resolve는 작업이 성공했을때, reject는 작업이 실패했을때 호출하는 함수이다. const promise = new Promise((resolve, reject) => { reject(new Error("에러 메시지를 던집니다.")); }); const promise = new Promise((resolve, rej..
자바스크립트 클로저란(javascript Closure)?지난 포스트에서 함수선언과 함수표현식 그리고 익명함수에 대해 정리하였습니다.함수선언과 함수표현식 그리고 익명함수에 대해 잘모르시는 분들은 아래 링크를 클릭하세요바로가기 클로저는 간단하게 생각하면 내부함수가 외부함수의 값을 변경 할 수 있는 것을 말합니다.이렇게만 정리하면 이해가 가지 않으므로 코드를 통해서 설명하겠습니다.일단 아래는 클로저를 이해할 수 있는 코드로 만들어진간단한 프로그램입니다. 위에는 텍스트 박스와 버튼이 있습니다. 숫자를 넣으신 후 실행버튼을 클릭하세요.위의 프로그램은 html코드와 script를 밑에 공유하겠습니다. 위에는 html코드입니다. var text = document.getElementById("text"); var ..
자바스크립트 window 객체의 전체 속성 알아보자안녕하세요. 모든 브라우저에서는 window객체를 지원하고 있습니다. 덕분에 우리가 쓰고 있는 자바스크립트에서는 window객체에 내장된 함수를 실행할 수 있는거죠. window객체에는 브라우저의 이벤트를 처리하기 위해 얼마나 많은 속성을 가지고 있고 또 그 속성 내부에는 다른 Object가 있어서 어떤 것을 지원하고 있을까 궁금했습니다. 그래서 자바스크립트로 직접 window객체를 2단계까지 속성을 펼쳐보았습니다. (직접 블로그에서 올릴려고 했지만 너무 많은 속성때문에 브라우저가 멈추는 현상이 있어서 직접 스크립트를 첨부파일로 해서 업로드합니다.) 아래 첨부 파일을 다운로드 받으세요첨부 받으실 파일을 html입니다. 실행을 시킨 후 브라우저에서 펼치기 ..
자바스크립트 JSON의 이해 JSON은 네트워크 데이터 전송방식의 표준 Format으로 사용되고 있습니다. (이외에는 xml, html) Json은 String 문자열이므로 실제 자바스크립트에서 사용하기 위해서는 파싱을 하여 객체로 사용할 수 있는데요. 자바스크립트에서 이럴때 사용하는 객체가 JSON 객체입니다. JSON객체에는 parse와 stringify가 내장되어 있어서 String - > Object로 Object -> String으로 변환해 주는데요. JSON 객체의 parse (String - > Object 변환)JSON객체에는 parse라는 함수가 있습니다. Json 포멧 방식을 가지고 있는 String 데이터를 parse를 통해 Object로 변환하는 것입니다. var jsonStr = ..
자바스크립트는 함수를 어떻게 정의하느냐에 따라함수 선언 및 함수 표현식 그리고 익명함수로 분리됩니다. 1. 함수 선언함수 선언이란 script 내부에서 아래와 같이 함수를 정의할 때 함수선언이라고 불립니다. function javaScriptTEST(){ //함수 선언 //구현 로직 } 함수선언은 기존의 프로그래밍에서 가장 명시적이고 많이 쓰이는 방식입니다.브라우저에서 코드를 인식하는 과정 중 제일 처음으로 해석되는 것이 함수 선언입니다.그러므로 함수 선언은 script의 위치가 어느 곳에 있어도 브라우저가 인식할 때가장 먼저 해석하게 됩니다. 프로그램의 순서는 무조건 위에서 아래로, 왼쪽에서 오른쪽으로 흘러간다는 개념으로 볼 때함수 선언이 밑에 있고 함수 사용을 위에서 해도 문제가 되지 않는 다는 의미..
일치연산자란?자바스크립트 및 다른 프로그래밍시 자주 사용하는 '==' 일치연산자입니다.(참고로 단일 "="는 일치연산자가 아닌 값을 주입한다고 해서 할당연산자라고 부릅니다.)일치연산자의 A와 B의 값을 비교하여 동일하면 TRUE, 동일하지 않다면 FALSE 리턴하는 것으로 대부분 알고 있으실 것 같습니다. 일반적으로 일치연산자를 다음과 같이 쓰실 것 같습니다.(밑의 코드는 편의상 자바스크립트라고 생각하시면 됩니다.) var a = 11; var b = 11; if(a == b){ alert("a와 b는 같다"); } 다음과 같은 코드가 나온다면 당연히 if문은 true이므로 alert창이 "a와 b는 같다"라고 출력됩니다. 당연히 예상되는 부분은 이제 넘어가고 다음 코드를 보시면 var a = 11; v..
파라미터와 인자의 차이를 알아보자 결론적으로 말하면 파라미터와 인자는 다릅니다.하지만 혼용될 수 있습니다. 파라미터란? 파라미터란 다른 말로 매개변수라고 합니다.함수(메서드)는 0개 혹은 하나이상의 파라미터를 가진 상태로 정의됩니다. function parameterTEST(test1, test2, test3){ return "parameterTEST 함수입니다." } 위의 parameterTEST함수에는 test1, test2, test3이라는 파라미터가 정의되어 있습니다. 인자란?인자란 아규먼트(Argument)라고 불립니다.다음 parameterTEST엔 인자를 넣어 호출해 보겠습니다. parameterTEST("테스트입니다", 1111, 19.5); "테스트입니다", 1111, 19.5가 바로 인..
요즘에는 웹사이트 가입시 주민등록번호를 필수기입이 많이 빠진상태입니다.(예전에는 회원가입할때 주민등록번호는 필수였죠?)정부의 지침에 따라 주민등록번호를 소지할수 없도록 변경되었는데요.그래서 예전에는 회원가입할때 주민등록번호를 기입할때주민번호를 가짜로 입력하는 회원이 많았습니다.이러한 주민등록번호를 가짜로 입력하는것을 방지하기 위해서회원가입시 서버에서 처리하는것이 아니라간단하게 자바스크립트로 주민등록번호를 검증처리를 자바스크립트로 처리하는데요. [javaScript source] //주민번호 7번째 자리의 규칙 ######################## //1800년대: 남자 9, 여자 0 //1900년대: 남자 1, 여자 2 //2000년대: 남자 3, 여자 4 //2100년대: 남자 5, 여자 6 /..
웹프로그래밍시 날짜관련부분은 서버보다는 프론트단에서 처리를 많이 합니다.그러다보니 자바로 프로그래밍하기보다는 자바스크립트로 날짜관련부분을 처리가 필요해지는데요.년월과 월을 파라미터로 넘기면 해당 년도의 월의 마지막일자(윤달 포함)를 반환해줍니다.월의 28,29,30,31일을 각년도의 월의 실제 마지막 날을 변환해드립니다. // 년월 입력시 마지막 일자 function getEndOfMonthDay( yy, mm ) { var max_days=0; if(mm == 1) { max_days = 31 ; } else if(mm == 2) { if ((( yy % 4 == 0) && (yy % 100 != 0)) || (yy % 400 == 0)) max_days = 29; else max_days = 28; ..