이번포스팅은 지난번 객체 포스팅에 대한 보충설명 격이다. 지난번 포스팅이 생각보다 너무 길어져서 따로 빼내 작성하는게 좋을것같아 이렇게 쓰게됐다. 사실 별 생각없이 넘어가면 머리아프게 생각할필요 없는 부분이기도한데 호기심이 왕성한 분들은 매우 궁금해할수도 있는부분이다. 우리는 함수의 3가지 역할에 대해 공부를 했다. 그중 1가지는 값으로서 전달되는 '변수'의 역할이니 이번포스팅에선 따로 다루지않는다. 그럼 나머지 2개가 무엇인가? 일반 메서드로서의 함수와 생성자로서의 함수가 바로 오늘 좀더 깊게 알아볼 것 들이다. 지난번에 배운 생성자 함수를 봐보자 function Cons(nick, job){ this.nick = nick; this.job = job; } var obj = new Cons("LichK..
자바스크립트는 객체 지향적 코딩을 지원하고있으며 그에 따라 당연히 객체를 생성하고 사용할 수 있다. 자바에서는 객체 생성을 new 연산자로만 지원하는데 반해 자바스크립트는 다양한 방법을 지원하고있으며 그중 2가지 방법을 알아보겠다. 1. 리터럴 표현 리터럴 생성방식에 알아보기전에 리터럴이라는 단어에 대해 잠깐 말해보고자 한다. '리터럴' 이라는 단어는 거의 대부분의 언어 기초책에서 앞부분에 나오는 단어이다. 그만큼 기초적인 용어인셈인데 이 리터럴이라는 단어에 대해 잘 모르는 개발자가 생각보다 매우 많다. 리터럴이라는 단어는 객체의 생성이나 따로 타입에 대한 추적없이 그 값 자체로 타입을 판별할 수 있는 표현법이다. 말이 좀 어려운데 내가 좋아하는 숫자인 5를 봐보자. 이건 누가 typeof 연산자를 사용..
자바개발자의 마음속 깊은 곳에는 자바스크립트를 무시하는 경향이 있다. 나또한 처음 자바스크립트를 공부한다고 했을때 주위에 많은 선배들이 그거 할시간에 자바공부를 더하고 스프링공부를 더해라. 그거 그냥 쓰면되지 뭘 따로 공부까지 하고있냐. 라는 말을 참 많이 들었었다. 그리고 같이 공부하는 분들도 주변에서 그런말을 참 많이 듣는다고 하셨다. 그러다 자바스크립트를 어느정도 공부하고 뭐가뭔지좀 알것같다고 생각될 무렵 스크립트단에서 발생하는 예상치못한 에러에 선배들이 짧게는 몇분에서 길게는 몇시간, 며칠을 고생하는걸 보면서 배우길 잘 했다고 생각이 든다. 그분들을 폄하할 생각은 없지만 한두명도 아니고 수백 수천명의 자바개발자가 왜 그런생각을 갖게되는지부터 살펴보자. 일단 자바스크립트를 화면단에서 값체크하고 더하..
나는 기본적으로 자바개발자다. 그렇기에 이 포스팅 시리즈도 기본적으로는 자바개발자를 대상으로 잡고있고 자바로 if, for문정도는 돌려서 구구단 출력은 해봤다는 전제하에 작성하는것이다. 자바스크립트에 대해 깊숙하게 알고있지는 않더라도 웹개발자라면 어쩔수없이 자바스크립트를 사용할수밖에 없는데 변수를 선언할때 타입이 아닌 var를 붙인다는것과 메서드가 function 으로 선언된다는거 말고는 실행하는데 있어 자바랑 크게 다른점이 없다고 생각하며 코딩을 하게 되는것이 일반적이다. 하지만 사실 변수를 선언할때 타입이 숫자든 문자열이든 boolean이든 상관없이 var로 선언한다는 것이, 앞에서 알아봤지만 자바에서 메서드라고 생각했던 함수가 내부적으로는 변수로 관리한다는것이. 그냥 '아~ 얜 이렇구나 이것만 주의..
지난번에 못 다쓴 자바스크립트의 파싱에 대해서 좀 더 얘기를 해볼까 한다. 앞서 말했듯이 자바스크립트는 파싱단계를 통해 소스를 재정렬하게되는데 var 변수와 함수를 함수(실행컨텍스트) 최상단으로 끌어올려 선언하고 런타임에 그 값을 정의하게된다. 변수에 대해서는 지난번 글에 꽤 설명을 했었다. 그럼 함수는 어떻게 될까? 이걸 설명하기에 앞서 함수 선언 부분을 봐보자. 보통은 이런식으로 함수를 선언한다. function func(){} 근데 이미 알고있는 분들도있겠지만 함수는 이런식으로도 표현이 가능하다. var func = function(){} 위쪽을 '함수 선언식' 아랫쪽을 '함수 표현식'이라고 말하는거같은데 이게 공식적인 용어인지는 잘 모르겠다. 여튼 어떤식으로 선언하든 호출은 동일하게 한다. fun..
자바스크립트는 한번에 모든 소스를 컴파일하는 컴파일 언어가 아니라 한줄 한줄 실행하는 인터프리터 언어이다. 때문에 자바스크립트는 컴파일이라는 단어보다 파싱이라는 단어가 좀 더 정확한 단어라고 할수있다. 소스를 한번 파싱한 후 한줄씩 런타임으로 진행하게되는데 파싱단계에서 소스가 재정렬이 되게된다. *이때 파싱과 런타임은 '함수' 단위로 실행되게된다. 좀 더 어려운 말을 쓰면 실행컨텍스트라고 하는데 함수라고 생각하면 이해가 쉽다. 그리고 최상위 레벨인 전역공간 역시 전역함수 내부에서 실행중이라고 생각하자. 이때 재정렬 되면서 함수단위 최상위로 올라오게되는것들이 1. var 변수선언 2. 함수선언 이다. 가령 예를들게되면 alert("선언 전 => " + num1); var num1 = 5; alert("선언..
function detectIE(){ var agent = navi.userAgent.toLowerCase(); //IE가 아님 if( agent.indexOf('msie') == -1 && agent.indexOf('trident') == -1 ) return; //IE-호환성보기 모드임 if( agent.indexOf('msie 7') > -1 && agent.indexOf('trident') > -1 ){ var bStyle = document.body.style; var canvas = document.createElement('canvas'); if( !('getContext' in canvas) ) return 8; if( !('msTransition' in bStyle) && !('trans..
checkbox checked 여부 : - id로 체크하는 경우$('input:checkbox[id="checkbox_id"]').is(":checked") == true - name으로 체크하는 경우$('input:checkbox[name="checkbox_name"]').is(":checked") == true - $('input[id="checkbox_id"]') + 옵션 형태로 작성 가능 $('input[name="checkbox_name"]').is(":checked") checkbox 갯수 확인 : - 전체 갯수 $('input:checkbox[id="checkbox_name"]').length - 선택된 갯수$('input:checkbox[id="checkbox_name"]:checked')..
/--------------------------------------------------------------------------------/ 사용법 파일 첨부후 해당 input 개체에 onKeyDown="nr_phone(this);" onKeyPress="nr_phone(this);" onKeyUp="nr_phone(this);" 위 이벤트를 등록. /-------------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------------*/ /* 한글의 경우 키 입력시 바로바로 작업이 안되기 때..
- Total
- Today
- Yesterday
- frontcode
- servlet
- go-core
- 정규표현식
- Git
- OOP
- code
- mariadb
- frontend개발환경
- JPA
- TEST
- generics
- EffectiveJava
- Kotlin
- java8
- Design Pattern
- javascript
- DesignPattern
- Spring
- Jackson
- MySQL
- JavaScript Core
- http
- programming
- clean code
- backend개발환경
- toby
- db
- spring cloud
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |