[js] Scope (범위)

javascript 를 공부하면서 Scope 라는 말은 한번 쯤은 들어보셨으리라 생각됩니다. 변수나 함수가 선언된 위치와 방법에 따라 어디까지 영향을 미치는(접근을 당하거나 할 수 있는)지의 범위를 Scope라 말합니다. Scope와 Closure에 대해 이해를 하는데 큰 도움이 되었던 게시물을 다시금 발견하게 되어 복습겸 올려봅니다. 본 게시물은 원문(http://1g.io/A3UJB3)의 번역본에 살을 조금 입힌 내용입니다. (원문 게시자 분께는 허락을 받지 않은 상태입니다.) … Read more

[js스터디] 과제 #2

첫 번째 과제를 충실히 잘 진행해준 여러분께 진심으로 감사드립니다. 첫 번째 과제는 변수의 설정과 반복문의 사용에 대해서 복습해 봤습니다. 그럼 두 번째 과제 나갑니다. +_+)~ Here we go~ 1번째 정은이와 은정이는 쌍둥이 형제입니다. 두 형제는 기골이 장대하여 한끼에 밥을 2공기씩 먹는다고 합니다. 밥 한공기의 가격이 1,000원이고, 하루 5끼를 먹는다고 할 때 한달 30일 동안 두 … Read more

[js] 이벤트 버블링

날씨가 좀잡을 수 없을 정도로 오락가락 하고 있네요… 밥 먹으러 나갔다 오는게 업무보다 힘들어지는 더위가 찾아오고 있어요.. 큰일입니다. ㅠ javascript 로 이벤트 핸들링을 하다보면 종종 내가 정한 범위를 넘어서 이벤트가 발생되는 경우를 만나곤 합니다. 위 예제 처럼 파란박스 위에 빨간박스가 겹쳐있을 때 아래와 같이 이벤트를 설정하게 되면 document.getElementById(“a”).onclick = clicked; document.getElementById(“b”).onclick = clicked; function clicked(event) … Read more

[js스터디] 과제 #1

21일 진행된 기초 js 스터디에 참석해주셔서 감사합니다. 비와 바람이 솔찮해 오고 가시는데 힘드셨을텐데 먼길 오셔서 얻어가는게 있으셨길 바랍니다. 그럼 예정처럼 과제를 진행하며 복습하는 시간을 가져보도록 하겠습니다. 1번째 50~500 까지의 합을 구하는 코드를 작성하시오. for 문을 사용해서 작성하고, while 문을 이용해서 작성하시오. 2번째 아래와 같이 출력되도록 javascript 코드를 작성하시오. * ** *** **** ***** 힌트: javascript … Read more

[js] js 스터디 – 장소/시간 업데이트

배움을 위해서는 그 어떤 지출도 아끼지 말아라. 라는게 제 지론이긴 합니다만, 월화수목금금금을 사는 IT 인들에게 주말의 짧은 휴식은 너무나도 달콤한 시간입니다. 이런 꿀같은 시간을 빼앗아가며 ‘내가 말하는걸 들으란 말야!’ 하기엔 너무 못된 것 같고 저도 쉬어야 하니까.. 그래서, 생각한 방법이! 딱 한번! 하루 6~8시간을 꼬박 스터디 합니다. 이후 과제를 내주고 과제를 풀면서 개인적인 복습/학습/예습/자습을 합니다. … Read more

[js] 숫자 포멧 – 천단위 콤마(,) 붙이기

전에 작성했던 [js] 숫자를 카운트 되는 것처럼 보여주기 에서 사용했던 코드인데 함수로 따로 뺐습니다. Object 에 확장을 했습니다. javascript는 모든것이 객체입니다. 때문에 Object에 확장을 한 것인데. 이렇게 Object에 확장하면 위험할 수 있다는 얘기를 본 것 같은데 정확히 기억이 나지 않습니다.;; Object.prototype.formatNumber = function() { if(!/^[0-9.]{1,}$/.test(this)) return false; n = this + ”; x = n.split(‘.’); … Read more

[js] 숫자를 한글로 읽어주기

퇴근길에 다음 도착 버스 안내하는 방송을 듣다가 만들어 볼 생각을 가졌습니다; 어디 쓸데가 있을까 싶은데.. 어..언젠가는.. 한번은.. 쓰겠죠; Number.prototype.getHangul = function() { var numberic = [“”,”일”,”이”,”삼”,”사”,”오”,”육”,”칠”,”팔”,”구”]; var numunit = [“”,””,”십”,”백”,”천”,”만”,”십만”,”백만”,”천만”,”억”,”십억”,”백억”,”천억”]; var str = “”, tmp = “”; var splited = []; for(var i = 0; i < String(this).length; i ++) { splited.push(String(this).substring(i, i+1)); } for(var … Read more

[js] 그래프 그리기

이것도 이름을 무어라 지어야 할지 모르겠네요.; 정적으로 그래프 수치만 보여주는 것이 아닌 그래프가 그려지는 걸 동적으로 보여주도록 하는 스크립트 입니다. function drawGraph(obj) { this.gages = obj.getElementsByTagName(“span”); this.values = obj.getElementsByTagName(“em”); for(var i = 0; i < this.gages.length; i ++) { (function(idx) { var current_value = 0; var gage_object = this.gages[idx]; var gage_value = this.values[idx]; var gage_width … Read more

[js] 숫자를 카운트 되는 것처럼 보여주기

아.. 제목을 뭐라고 해야할지 몰라서 보여주는 그대로를 글자로 옮겨봤습니다. 더 센스 있는 이름없나;.. 정해진 숫자만큼 카운트 업 되는 효과를 주는 스크립트입니다. function numberCounter(target_frame, target_number) { this.count = 0; this.diff = 0; this.target_count = parseInt(target_number); this.target_frame = document.getElementById(target_frame); this.timer = null; this.counter(); }; numberCounter.prototype.counter = function() { var self = this; this.diff = this.target_count – this.count; … Read more

[js] getElementsByClassName

jQuery 같은 프레임웍을 쓰지 않는다면 class name 으로 dom 셀렉팅을 할 수 없습니다. 지난번 javascript 스터디를 통해서 function 타입으로 제작하는 방법을 설명했었는데 조금 더 발전시켜 document 객체에 prototype으로 선언해 getElementById 와 같은 매서드의 형식으로 사용할 수 있도록 제작해봤습니다. 안타깝게도 Document 객체에 prototype 으로 선언하는 것이 IE 시리즈에선 허용되지 않아 아래와 같은 방식으로 우회했습니다. 테스트는 여기서 http://jsfiddle.net/rootbox/gtEkb/ … Read more