변수 숨김 { //외부블록 let x = 'blue'; console.log(x); { //내부 블록 let x = 3; console.log(x); } console.log(x); } 내부 블록의 x는 외부 블록에서 정의한 x와는 이름만 같을 뿐 다른 변수이므로 외부 스코프의 x를 숨기는 효과가 있습니다. 여기서 이해해야 할 중요한 점은, 실행 흐름이 내부 블록에 들어가 새 변수 x를 정의하는 순간, 두 변수가 모두 스코프안에 있다는 겁니다. 변수의 이름이 같으므로 외부 스코프에 있는 변수에 접근할 방법이 없습니다. 클로저 함수가 특정 스코프에 접근할 수 있도록 의도적으로 그 스코프에서 정의하는 경우 스코프를 함수 주변으로 좁히는 것. let globalFunc; //정의되지 않은 전역 함수 { let..
자바스크립트에서의 함수 자바스크립트에서는 함수도 객체입니다. 따라서 다른 객체와 마찬가지로 넘기거나 할당 할 수 있습니다. 함수 호출과 참조의 차이를 이해하는 것이 중요합니다. 함수 식별자 뒤에 괄호를 쓰면 자바스크립트는 함수를 호출하려 한다고 이해하고, 함수 바디를 실행합니다. 그리고 함수를 호출한 표현식은 반환값이 됩니다. 괄호를 쓰지 않으면 다른 값과 마찬가지로 함수를 참조하는 것이며 그 함수는 실행되지 않습니다. function getGreeting() { return "Hello World"; } getGreeting();//"Hello World" getGreeting;//function getGreeting() 함수를 호출하지 않고 다른 값과 마찬가지로 참조하기만 할 수 있다는 특징은 자바스..
단항 부정, 단항 플러스 산술 연산자는 대부분 알고 있는데 단항 부정과 단항 플러스는 다소 생소할 것이다. 별거 아니지만 자바스크립트에서 사용될 수 있는 연산자다. 단항 부정 -x //x의 부호를 바꿀 수 있다. x가 5였다면 -5로 바꿔준다. 단항 플러스 +x //x가 숫자가 아니면 숫자로 변환을 시도한다. const s ="5"; const y = 3 + +s; y => 8 //여기서 단항플러스가 없었다면 문자열병합을 시도하여 "35"가 되었을 것 비교연산자 === 일치함, == 동등함 ===은 같은 객체 or (같은 타입 and 같은 값)으로 이루어야 일치하게 나옵니다. == 동등함은 자료형과는 상관없이 값만 같으면 됩니다. 33 == "33"이 true가 나오기 때문에 여러가지 문제를 야기시킬 수..
for...in for..in문은 자바에서도 자주 쓰이는 문법이다. 객체를 좀더 쉽게 다루기 위해 생겨난 제어문으로 사용법은 아래와 같다. const player = {name:'Thomas', rank:'Midshipman', age:25}; for(let prop in player){ if(!player.hasOwnProperty(prop)) continue; console.log(prop+ ':' + player[prop]); } player 변수를 넣고 돌리면 key값 들을 순회하는 것이다. 값을 뽑으려면 객체[key]로 뽑아야한다. 4번째 줄은 에러가 생길 수 있기 때문에 예외처리를 해준 것이다. for...of 이 문법은 ES6에서 새로 생긴 반복문이며 컬렉션의 요소에 루프를 실행하는 다른 방..
net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 위 에러로 개고생 한게 있어서 나중에 참고용으로 해결법만 간단하게 써 놓을 예정이다. JSON 파싱할 때 타입이 맞지 않아 생기는 에러란다. 이걸 해결해 주려면 select to_char(sysdate, 'yyyy-MM-dd HH24:mi:ss) as cDate from dual; 이런식으로 char 형식으로 바꿔 준 다음 VO객체에 String으로 담아서 보냈다.
JSON이란?자바스크립트의 객체 표기법을 제한하여 만든 텍스트 기반의 데이터 교환 표준입니다. 따라서 JSON 데이터는 자바스크립트가 자주 사용되는 웹 환경에서 사용하는 것이 유리합니다. 자바스크립트에서 JSON 데이터를 분석하고 사용하는 것은 매우 간단합니다.자바스크립트는 JSON 데이터를 처리하기 위한 다음과 같은 메소드를 제공합니다. 1. JSON.stringify()2. JSON.parse()3. toJSON() JSON.stringify() 메소드인수로 전달받은 자바스크립트 객체를 문자열로 변환해 반환합니다.ex) JSON.stringify(객체) JSON.parse() 메소드JSON.stringify와 반대로 인수로 전달받은 문자열을 자바스크립트 객체로 변환하여 반환합니다.text에는 변환할 ..
이벤트 활용이벤트 속성과 이벤트핸들러(함수)를 연동하여 이벤트 발생시 특정기능을 하도록 하는 것 이벤트 설정방법고전 이벤트 모델표준 이벤트 모델 고전 이벤트 모델요소객체가 가지고 있는 이벤트 속성에 이벤트 핸들러를 연결하는 방법이벤트를 제거할 때는 속성값에 null값을 넣어주면 됨이벤트 발생객체는 핸들러 내부에서 this로 표현 / 스타일변경 가능매개변수로 이벤트 정보전달(e, window.event) ->이벤트객체 전달 예) 클릭시 이벤트설정var h = document.getElementById('id명');h.onclick = function{수행기능 설정;h(this).onclick = null; //한번만 실행}; //고전방식의 이벤트처리 //속성값에 바로 함수(이벤트핸들러) 입력! onload..
BOM(Brower Object Model)이란?window 객체 아래서 크게 BOM과 DOM으로 나뉜다. 보통 홈페이지 창을 하나 띄워놓고 주소창의 부분을 가리킨다고 보면쉽다. BOM안에 존재하는 객체location 객체navigator 객체history 객체screen 객체 window 객체자바스크립트에서 최상위 객체 생성되는 모든 객체가 window객체 하위에 존재, 브라우저 창에 대한 설정하는 객체 window.open('주소', '이름 또는 open방식', '형태'); 형태 옵션 height 윈도우 높이 값 width 윈도우 너비 값 location 주소 입력창 yes | no | 1 | 0 menubar 메뉴 유무 resizable 화면크기 조절 status 상태표시줄 toolbar 툴바표시 ..