C 와 Java 에선 못보던 JavaScript만의 특이한 문법

Posted by ironmask84
2015. 7. 30. 14:31 나는 프로그래머다!/HTML5


1. == 과 ===
== 는 1 == '1' 을 true로 출력한다. 즉, 데이터 타입이 달라도 의미상 값이 같으면 true로 처리한다.
이는 SW개발 상 바람직하지 못하므로, ===를 쓰는 것을 추천한다.
!= 과 !== 의 용도도 동일한 맥락이라고 생각하면 된다.

2. null 과 undefined 과 NaN
null은 값이 없는 상태를 명시적으로 정의한 것.
undefined는 실제로 값이 정의가 안된 것.(C에서는 전역변수면 default값이 들어가고, 지역변수는 쓰레기값 임)
NaN은 0/0 과 같은 연산의 결과로 만들어진 것 (C에서는 쓰레기 값이 들어가지..)
( null === undefined // false    null == undefined // true    NaN === NaN // false)

3. true 과 false
== 연산자는 숫자 1만을 true로 숫자 0만을 false로 간주한다. (물론, ===에서는 다른것으로 체크)
(C에서는 0을 false로 인식, 나머지 숫자들은 true이다..)

4. 


 

JavaScript - 이벤트 응용4 - jQuery 활용

Posted by ironmask84
2015. 7. 30. 09:15 나는 프로그래머다!/HTML5


앞서 포스팅했던 이벤트 등록법은 순수 html 혹은 JavaScript를 이용한 방법이었습니다.

jQuery를 이용하면 아래와 같이 매우 간결하고 쉽게 이벤트 등록이 가능하므로,
매우 생산적! 이라고 할 수 있습니다. (프로그래머들은 간결한 것을 좋아하죠 :) )

opentutorials.org 사이트에서 참 많이 배우고 가는데요.
밑에 예시도 거기서 참조하였습니다. ㅎ

<input type="button" id="pure" value="pure" />
<input type="button" id="jquery" value="jQuery" />
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
// 순수하게 구현했을 때
var target = document.getElementById('pure');
if(target.addEventListener){
target.addEventListener('click', function(event){
alert('pure');
});
} else {    // for I.E8 이하
target.attachEvent('onclick', function(event){
alert('pure');
});
}
// jQuery를 사용했을 때
$('#jquery').on('click', function(event){
alert('jQuery');
})
</script>


** selector를 이용한 이벤트 등록

<ul>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
</ul>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('ul').on('click','a, li', function(event){
console.log(this.tagName);
})
</script>


** html 태그가 로딩되기 전에 script를 실행시키는 late binding
(onload 이벤트와는 다르다.)

<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('body').on('click','a, li', function(event){
console.log(this.tagName);
})
</script>
<ul>
<li><a href="#">HTML</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">JavaScript</a></li>
</ul>


** 다중 바인딩

1) 하나의 엘리먼트에 여러개 이벤트 등록

<input type="text" id="target" />
<p id="status"></p>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('#target').on('focus blur', function(e){
$('#status').html(e.type);
})
</script>

2) 이벤트에 따라 다른 핸들러 등록

<input type="text" id="target" />
<p id="status"></p>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$('#target').on({
'focus' : function(e){
},
'blur' : function(e){
}
})
</script>

3) chaining 기법도 가능
$('#target').on('focus', handler).on('blur', handler);


** 이벤트 제거 (off 함수 사용)

<input type="text" id="target"></textarea>
<input id="remove" type="button" value="remove" />
<p id="status"></p>
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
var handler = function(e){
$('#status').text(e.type+Math.random());
};
$('#target').on('focus blur', handler)
$('#remove').on('click' , function(e){
$('#target').off('focus blur', handler);
console.log(32);
})
</script>

출처
https://opentutorials.org/module/904/6862
https://opentutorials.org/module/904/6888

 

JavaScript - 이벤트 응용2 - 이벤트 타입

Posted by ironmask84
2015. 7. 29. 16:39 나는 프로그래머다!/HTML5


1. 폼
submit : 폼의 정보를 서버로 전송하는 명령인 submit시에 일어난다. form 태그에 적용된다.
change : 폼 컨트롤의 값이 변경 되었을 때 발생, input(text,radio 등), textarea, select 태그에 적용
blur : 엘리먼트에 포커스가 생겼을 때
focus : 포커스가 사라졌을 때 발생

2. 문서 로딩
웹페이지를 프로그래밍적으로 제어하기 위해서는 웹페이지의 모든 요소에 대한 처리가 끝나야 한다. 이것을 알려주는 이벤트가 load, DOMContentLoaded이다.

그런데 load 이벤트는 문서내의 모든 리소스(이미지, 스크립트)의 다운로드가 끝난 후에 실행된다. 이것을 에플리케이션의 구동이 너무 지연되는 부작용을 초래할 수 있다.

DOMContentLoaded는 문서에서 스크립트 작업을 할 수 있을 때 실행되기 때문에 이미지 다운로드를 기다릴 필요가 없다.

<script>

window.addEventListener('load', function(){
console.log('load');
})
window.addEventListener('DOMContentLoaded', function(){
console.log('DOMContentLoaded');
})
</script>

3. 마우스
아래 링크 참조
http://output.jsbin.com/pepib/4/

  • click
    클릭했을 때 발생하는 이벤트. 
  • dblclick
    더블클릭을 했을 때 발생하는 이벤트
  • mousedown
    마우스를 누를 때 발생
  • mouseup
    마우스버튼을 땔 때 발생
  • mousemove
    마우스를 움직일 때
  • mouseover
    마우스가 엘리먼트에 진입할 때 발생
  • mouseout
    마우스가 엘리먼트에서 빠져나갈 때 발생
  • contextmenu
    컨텍스트 메뉴가 실행될 때 발생


참고 출처
https://opentutorials.org/module/904/6762
https://opentutorials.org/module/904/6765
https://opentutorials.org/module/904/6766

 

JavaScript - 이벤트 응용3 - 기본 이벤트 동작 취소 방법

Posted by ironmask84
2015. 7. 29. 16:18 나는 프로그래머다!/HTML5


 

JavaScript - 이벤트 응용1 (버블링과 캡쳐링)

Posted by ironmask84
2015. 7. 28. 15:23 나는 프로그래머다!/HTML5


버블링과 캡쳐링은 addEventListener() 사용 시, 3번째 인자에 따라 구분된다.
true이면 캡쳐링이며, false 혹은 인자를 비워두면 버블링이다.

버블링 : 중첩된 태그에 등록된 이벤트를 가장 안쪽 태그부터 수행
캡쳐링 : 중첩된 태그에 등록된 이벤트를 가장 바깥쪽 태그부터 수행

웹브라우져 호환때문에도 그렇고, 거의 버블링을 사용한다.


http://output.jsbin.com/yozax/1/  <-- 웹 상에서 코드수정이 가능한 site 굿!


<html>
<head>
<style>
html{border:5px solid red;padding:30px;}
body{border:5px solid green;padding:30px;}
fieldset{border:5px solid blue;padding:30px;}
input{border:5px solid black;padding:30px;}
</style>
</head>
<body>
<fieldset>
<legend>event propagation</legend>
<input type="button" id="target" value="target">
</fieldset>
<script>
function handler(event){
var phases = ['capturing', 'target', 'bubbling']
console.log(event.target.nodeName, this.nodeName, phases[event.eventPhase-1]);
}
document.getElementById('target').addEventListener('click', handler, true);
document.querySelector('fieldset').addEventListener('click', handler, true);
document.querySelector('body').addEventListener('click', handler, true);
document.querySelector('html').addEventListener('click', handler, true);
</script>
</body>
</html>


위 코드에서 이벤트 실행 전파를 막는 방법도 있다.
아래의 핸들러를 정의한 후에 이벤트 등록 시에 사용하면 가능한다.
아래 코드를 추가 및 수정하면, body 태그의 이벤트 까지만 호출된다.

function stophandler(event){
var phases = ['capturing', 'target', 'bubbling']
console.log(event.target.nodeName, this.nodeName, phases[event.eventPhase-1]);
event.stopPropagation();
}
document.querySelector('body').addEventListener('click', stophandler, false);


참고출처 : https://opentutorials.org/module/904/6768

 

JavaScript - 이벤트

Posted by ironmask84
2015. 7. 28. 11:21 나는 프로그래머다!/HTML5


<!DOCTYPE html>
<html>
<body>
<input type="button" onclick="alert(window.location)" value="alert(window.href)" />
<input type="button" onclick="window.open('bom.html')" value="window.open('bom.html')" />
</body>
</html>


event target
->target은 이벤트가 일어날 객체를 의미한다.

event type
->이벤트의 종류를 의미한다.
   (
https://developer.mozilla.org/en-US/docs/Web/Reference/Events)

event handler
-> 이벤트가 발생했을 때 동작하는 코드를 의미한다. 
    위의 예제에서는 alert(window.location)이 여기에 해당한다.

출처 : https://opentutorials.org/module/904/6629


** 이벤트 등록방법

1. inline : 이벤트를 이벤트 대상의 태그 속성으로 지정하는 것이다.
<input type="button" onclick="alert('Hello world');" value="button" /> <input type="button" onclick="alert('Hello world, '+this.value);" value="button" />

2. property listener : 
이벤트 대상에 해당하는 객체의 프로퍼티로 이벤트를 등록하는 방식
event 객체에는 여러가지 정보가 담겨있다!!(console.dir(event); 확인)

<body>
<input type="button" id="target" value="button" />
<script>
var t = document.getElementById('target');
t.onclick = function(event){
alert('Hello world, '+event.target.value)
}
</script>

// I.E 8이하 버젼 호환을 위해서는 아래와 같이 추가 예외처리 필요

<input type="button" id="target" value="button" />
<script>
var t = document.getElementById('target');
t.onclick = function(event){
var event = event || window.event;
var target = event.target || event.srcElement;
alert('Hello world, '+target.value)
}
</script>


3. addEventListener() :
가장 권장하는 방식. 한 target에 여러 이벤트 등록 혹은 정의해 놓은 한 이벤트 핸들러를 여러 객체에 등록할 수 있다.


var t = document.getElementById('target');
if(t.addEventListener){
t.addEventListener('click', function(event){
alert('Hello world, '+event.target.value);
});
} else if(t.attachEvent){    // I.E 8이하 버젼의 호환을 위해..
t.attachEvent('onclick', function(event){
alert('Hello world, '+event.target.value);
})
}
// 한 target에 여러 이벤트를 등록
<input type="button" id="target" value="button" />
<script>
var t = document.getElementById('target');
t.addEventListener('click', function(event){
alert(1);
});
t.addEventListener('click', function(event){
alert(2);
});
</script
// 하나의 리스너로 여러 target에 적용
<input type="button" id="target1" value="button1" />
<input type="button" id="target2" value="button2" />
<script>
var t1 = document.getElementById('target1');
var t2 = document.getElementById('target2');
function btn_listener(event){
switch(event.target.id){
case 'target1':
alert(1);
break;
case 'target2':
alert(2);
break;
}
}
t1.addEventListener('click', btn_listener);
t2.addEventListener('click', btn_listener);
</script>

출처
https://opentutorials.org/module/904/6759
https://opentutorials.org/module/904/6760
https://opentutorials.org/module/904/6761

 

블로그 연혁

Posted by ironmask84
2015. 7. 23. 02:00 블로깅/블로그 연혁


2008년 8월말 블로그 개설

2008년 ~ 2009년 대학시절 마지막 정리 & 취업준비 용도로 블로그 이용

2010년 12월 ironmask84.net 으로 도메인 포워딩

2010년 ~ 2014년
회사 취업 후 회사업무, 취미, IT 관련 포스팅
블로그 카테고리 구체화
심혈을 기울인 스킨 선택
사이드바 소극적 이용
구글애드센스 시도와 실패
나눔고딕 적용!! (http://hangeul.naver.com/index.nhn  와 http://jeeni.tistory.com/3 참조)

(포스팅 때는 글씨체 선택이 안되는데 css파일에 url 혹은 블로그에 폰트파일업로드 해서 본문영역부분에 폰트를
 적용해서 포스트를 view 할때는 나눔고딕으로 보임..  그리고 view하는 기기에 나눔고딕이 설치되어있어야 함.)
 
2015년 7월 ironmask.net 으로 도메인 포워딩

2015년 6월부터!!
HTML5 + JavaScript + CSS 에 대한 업무지식이 필요해짐에 따라 다시 의욕 충천!
사이드바 깔끔정리
티스토리 플러그인 적용!! (그 동안 관심이 없었다니 ㅠㅠ..  상당히 유용하다..)
양질의 포스팅
취미의 다각화

2016년 
생각만큼 포스팅을 못하였으나...
나름 꾸준히 진행 중... 그래도 많이 초라함 ㅠㅠ
계획했던 포스팅들을 계속 이어갈 계획
처음 본? 결산 페이지 : http://www.tistory.com/thankyou/2016/tistory/182876

2017년
2월 18일 10만 조회 돌파!! (기념 초대장 배포 진행 ^^)
2월 20일 카테고리 대폭 정리
3월        카테고리 Jquery 적용 (미포스팅 카테고리 숨김)
6월        구글 애드센스, 애널리틱스 적용, 반응형 웹 스킨 적용(Fastboot 스킨)
7월        반응형 웹 스킨 적용 후 Customizing, Addthis 공유버튼 적용, 구글맞춤검색 적용(애드센스 하위메뉴)
8월        공감과 광고 유도 메세지 서식 적용, 티에디션 다시 적용, 광고 최적화 중,  RSS 부분공개, 저작권 관련 처리!!
             웹마스터 도구를 활용한 ironmask.net 활성화 진행 (사이트맵 등록, RSS 등록 포함)
10월       본문 내에 상단 및 하단 광고 조정, 메인페이지 광고 크기 조정, 본문 하단 광고 조정
             일치하는컨텐츠 광고 적용(광고옵션이 아직 안떠서, 광고활용은 못하고 있음... 정확한 조건이??..)
11월       포탈사이트 ZUM에 검색등록, 댓글 캐릭터 사진 카카오 프렌즈 적용
12월       일치하는컨텐츠 광고옵션 적용
2017년 결산 페이지 : http://www.tistory.com/thankyou/2017/tistory/182876

2018년
1월        15만 조회 돌파 기념 초대장 배포!!
4월        네이버이웃커넥터 코드를 ironmask.net으로 새로 받아서 이웃추가 배너로 새로 적용
9월        반응형 웹 스킨이긴 하지만, 글을 PC에서 쓰고 모바일로 보면 불편감이 크므로,
            이를 해결할 방법 모색하기 (접기 기능 등 활용 필요)
10월      웹페이지 속도가 느리다.. 이를 해결할 방법 모색
            스피드는 ( https://testmysite.withgoogle.com ) 참고

2019년
1월        30만 조회 돌파!!
2월        티스토리 자체 https 보안강화 패치로 인해 fastboot 스킨에 사이드메뉴 오류 발생 해결
             (https://sunstar2.tistory.com/1919 블로거님 참고함.)
6월        키워드 검색순위 방법 도입 (https://ironmask.net/482 참고)


---- 향 후 계획----
카테고리 정리
스킨 최적화(HTML + CSS)
프로그래밍, 맛집, 여행, 기타, IT Security


블로그 이미지
Write by ironmask
너희들은 이 세계의 미래를 책임지고 있는 희망과도 같은 존재다.

















'블로깅 > 블로그 연혁' 카테고리의 다른 글

2021년 블로그 방향 설정 및 고민  (0) 2021.01.31
 

홍콩&마카오 여행 첫 업뎃!

Posted by ironmask84
2015. 7. 23. 00:59 해외여행/홍콩&마카오 - 2013


여행 다녀온지 2년이 넘었지만, 이제서야 첫 업뎃 ㅠㅠ

이번 캄보디아 여행 준비하면서..

익스피디아 에서 숙소 예약한 것이 생각났다!!

이번 캄보디아 여행 숙소도 익스피디아로 할까 생각중!!

호텔은 홍콩 도심 중심이었는데, 정확한 위치는 가물가물.. 차차 다시 확인해보기로 하고,
지금 봐도 꽤 숙박료가 비싸네 ㅋㅋ 
그래도 꽤나 쾌적해던 걸로 기억함.

차차 업뎃하기로 하고 오늘은 숙소 정보 사진 한장 올림 :)



 

JavaScript에서의 객체와 객체지향

Posted by ironmask84
2015. 7. 22. 15:47 나는 프로그래머다!/HTML5


기본적으로 배열이 0,1,2 ... 와 같이 숫자를 인덱스로 해서 값을 담아내는 그릇이라고 하면,
JavaScript에서의 객체는 이 인덱스가 숫자도 가능하지만, 문자로도 가능한 점이 특징이다.

따라서, 타 프로그래밍 언어에서는 연관배열(associative array) 또는 맵( map), 딕셔너리(Dictionary)라는 데이터 타입이 객체에 해당한다.

ex)

var val1 = {};    // {}; 의 표현이 객체 생성이다.  []; 표현은 배열!

val1.val1 = 'ironmask';
val1.ironmask = 100;
val1['iromask2'] = 90;
==> Object {val1: "ironmask", ironmask: 100, ironmask2: 90}

==> val1['val1'] 은 "ironmask" 를 리턴
      val1['va'+'l1'] 과 같은 표현도 가능
      val.val1 과 같이도 사용 가능
===> 따라서, 'val1' 을 key라고 하고, 값을 value 로 부르는 경우가 많다.

한번에 값들을 정의하는 경우
// 이렇게 객체 내에 속성과 메소드를 그룹화해서 사용가능하므로, 이것이 JavaScript의 객체지향
var val1 = {
       'list' : {'ironmask' : 100, 'LG' : 90, 'Samsung' : 80}
      
'show' : function() {
                  alert("hello world");

        }

}

val1['show']();  // 함수는 이렇게 사용

* Tip 

for(var key in val1) {    // for in 문이라고 한다. (배열에서도 동일하게 사용 가능)
console.log(val1[key]);   // key를 순회하면서, key에 대응하는 값들을 찍어준다.
}

 

JavaScript의 함수!!

Posted by ironmask84
2015. 7. 21. 15:26 나는 프로그래머다!/HTML5


그 동안, C, JAVA가 주력 언어였고..
C++도 학부시절에 기본 A~Z 까지는 배웠기에,
어느정도 절차적, 객체지향에 대해 개념이 있다고 생각해왔습니다만..

이번에 HTML5 를 접하게 되면서, 학부 때 잠깐 접한 JavaScript를 공부 중인데,
아직 적응이 안되고 있는 중 임요....

기존 알고 지낸 프로그래밍 언어의 함수의 용도는 동일하나,
쓰임새가 너무 자유자재라..
정리를 위해 아래 몇몇 Case를 올립니다.
(출처 : https://opentutorials.org/module/532/6508  참조)

1. 변수 Case
1) function a(){}
2) a = {

b:function(){    <-- 객체내에('a'라는 객체) 있는 함수는 메소드라고 부른다.
}
};

2. 매개변수 Case

function cal(func, num){
return func(num)
}
function increase(num){
return num+1
}
function decrease(num){
return num-1
}
alert(cal(increase, 1));
alert(cal(decrease, 1));


3. 리턴 값 Case

function cal(mode){
var funcs = {
'plus' : function(left, right){return left + right},
'minus' : function(left, right){return left - right}
}
return funcs[mode];
}
alert(cal('plus')(2,1));
alert(cal('minus')(2,1));


4. 배열 Case

var process = [
function(input){ return input + 10;},
function(input){ return input * input;},
function(input){ return input / 2;}
];
var input = 1;
for(var i = 0; i < process.length; i++){
input = process[i](input);
}
alert(input);



 

JavaScript 재귀함수 예시

Posted by ironmask84
2015. 7. 20. 14:39 나는 프로그래머다!/HTML5



<!DOCTYPE html>
<html>
<body id="start">
<ul>
    <li><a href="./532">html</a></li>
    <li><a href="./533">css</a></li>
    <li><a href="./534">JavaScript</a>
        <ul>
            <li><a href="./535">JavaScript Core</a></li>
            <li><a href="./536">DOM</a></li>
            <li><a href="./537">BOM</a></li>
        </ul>
    </li>
</ul>
<script>
function traverse(target, callback){
    if(target.nodeType === 1){        // ===으로 사용하는 것 주의 nodeType이 1이면, Element Node 이다.
                                                 // (http://ironmask84.net/admin/entry/post/?id=214 참고)
        //if(target.nodeName === 'A')    // a 태그만 추출
        callback(target);
        var c = target.childNodes;
        for(var i=0; i<c.length; i++){
            traverse(c[i], callback);       // 재귀함수 호출
        }  
    }
}
traverse(document.getElementById('start'), function(elem){
    console.log(elem);
});
</script>
</body>
</html>


 

jQuery 와 Element 객체와 Node 객체

Posted by ironmask84
2015. 7. 16. 10:09 나는 프로그래머다!/HTML5




그림 : http://web.stanford.edu/class/cs98si/slides/the-document-object-model.html

Element객체와 jQuery

document.getElementById : return type은 HTMLLIELement
document.getElementsByTagName : return type은 HTMLCollection (유사배열)
-> 실행결과가 하나인 경우 HTMLLIELement, 복수인 경우 HTMLCollection return
constructor 혹은 constructor.name 로 확인 가능

var li = document.getElementsByTagName('li');
var li2 = $(li);
위와같이 jQuery function 인 $(); 로 둘러싸면, return type이 jQuery 가 되지만,
복수일 경우 유사배열로 잡히며, li2[0], li2[1]... 각각은 HTMLLIELement 타입이 된다.
-> l1.constructor.name, li2.constructor.name, li2[0].constructor.name  로 확인 가능

document.getElementById('target').getAttribute(name);
==> ==> $('#target').attr(name);
document.getElementById('target').setAttribute(name, value) ;
==> $('#target').attr(name, value);

document.getElementById('target').hasAttribute(name);

document.getElementById('target').removeAttribute(name);
==> $('#target').removeattr(name);


Node 객체

Node.childNodes : 자식노드들을 유사배열에 담아서 리턴한다.
Node.firstChild : 첫번째 자식노드
Node.lastChild : 마지막 자식노드
Node.nextSibling : 다음 형제 노드
Node.previousSibling : 이전 형제 노드

** Node 와 Node.nextSibling.previousSibling는 같다.  (이런 식으로 Chaining 식으로 사용 가능)

Node.nodeType node의 타입을 의미한다.
Node.nodeName node의 이름 (태그명을 의미한다.)


** 2015_08_28 추가!

querySelector() 이용 시, 태그의 class 속성 접근 시 매우 편리

this.calls.querySelector('.handled-call.incoming .additionalContactInfo');
위와 같은 방식으로 calls라는 변수(어느 태그값을 가져온 변수 document.getElementById 등 이용) 하위에
태그들 중 
handled-call.incoming 클래스를 가진 녀석의 하위에 있는 녀석들 중 additionalContactInfo 클래스를 가진 녀석이 리턴된다.

'나는 프로그래머다! > HTML5' 카테고리의 다른 글

JavaScript - 이벤트 응용1 (버블링과 캡쳐링)  (0) 2015.07.28
JavaScript - 이벤트  (0) 2015.07.28
JavaScript에서의 객체와 객체지향  (0) 2015.07.22
JavaScript의 함수!!  (0) 2015.07.21
JavaScript 재귀함수 예시  (0) 2015.07.20
Attribute와 Property  (0) 2015.07.14
DOM Tree  (0) 2015.07.13
JQuery 초 간단 이해  (0) 2015.07.10
SublimeText2  (0) 2015.06.19
HTML 과 JavaScript 기본 참고 사이트  (0) 2015.06.19
 

Attribute와 Property

Posted by ironmask84
2015. 7. 14. 16:13 나는 프로그래머다!/HTML5


attribute(HTML의 속성) VS property(JavaScript의 속성)

$().attr(jQuery를 통해 attribute 제어) VS $().prop(jQuery를 통해 property 제어)
=> setAttribute(), getAttribute == $().attr
   removeAttribute() == $().removeAttr

* property 방식을 사용하는 것이 더 속도가 빠르다고 한다.
* 그렇다면, property를 사용하는 것이 더 장점이 있다는 뜻인데..

  하지만, attr에서 사용하는 이름과 약간 다른 부분이 있는 문제가 있다.

  이를 jQuery에서는 교정해주는 아주 훌륭한 기능이 있다.
  즉, 아래 둘다 같은 결과를 리턴하게 된다.
  $('#t1').prop('className', 'important'); // className는 property 방식
  $('#t1').prop('class', 'important');     // class는 attribute 방식

'나는 프로그래머다! > HTML5' 카테고리의 다른 글

JavaScript - 이벤트 응용1 (버블링과 캡쳐링)  (0) 2015.07.28
JavaScript - 이벤트  (0) 2015.07.28
JavaScript에서의 객체와 객체지향  (0) 2015.07.22
JavaScript의 함수!!  (0) 2015.07.21
JavaScript 재귀함수 예시  (0) 2015.07.20
jQuery 와 Element 객체와 Node 객체  (0) 2015.07.16
DOM Tree  (0) 2015.07.13
JQuery 초 간단 이해  (0) 2015.07.10
SublimeText2  (0) 2015.06.19
HTML 과 JavaScript 기본 참고 사이트  (0) 2015.06.19
 

삼성물산과 제일모직의 합병 (뉴삼성물산 ㅡㅡ)

Posted by ironmask84
2015. 7. 14. 15:54 생각과 일상/사회이슈 및 생각


나는 요즘 화두가 되고 있는 삼성물산과 제일모직의 합병에 관심을 많이 가지고 있다..

합병의 거대한 시너지가 목적이 아니라, 삼성그룹의 안정적인 승계를 위해 억지스런 합병을 진행하려한다고 맹비난하는 이들도 적지 않으며 좋지않게 보이기는 나도 마찬가지다.

제일모직의 지분을 많이 가지고 있는 이재용 씨가 삼성물산과 합병을 통해 삼성물산이 가지고 있는 삼성전자 4%등의 지분이 손아귀에 들어오게 되면, 삼성그룹의 왕으로 군림할 수 있다는 취지인 것 같다.

정식으로 재산 상속을 하게되면, 얼마만큼의 세금을 내야 하기에 이토록 많은 소액주주들의 반대에도 불구하고, 거행하려는 것일까..  미국의 대표적 재벌 빌게이츠나 워렌버핏과 비교했을 때 사회에 환원하는 정도가 부끄럽지 아니한가..

ISS 라는 가장 권위있는 국제 자문기관에서도 합병이 부당하다는 공지를 냈음에도,
현재 추세로 봤을 때, 정부 및 공공기관은 대한민국의 막강 대기업 삼성쪽에 손을 들어주는 것 같아 보이며, 이에 따라 언론은 당연히? 일방적인 삼성편을 들고 있어 보인다. 엘리엇이라는 미국의 헤지펀드사가 많은 지분을 가지고 반대편에 나섰으며, 이에 국내의 많은 소액주주들이 위임중에 있다.
다만, 타 외국세력의 움직임이 아직 미지수이다..

몇 일 전에 '수박합병' 이라는 우스광스런 말이 떠돌고 있다..
이것이 무엇이냐 하면, 삼성물산에서 직원들을 풀어서 삼성물산 주식을 한 1000주 이상 쯤 가지고 있는
소액주주들을 대상으로 한 손엔 수박을 들고 한 손엔 위임장을 가지고 가정집 방문하여, 합병찬성을 권유하고 있는 것이다..  이것만 봐도 삼성이 합병을 위해 얼마나 사활을 걸고 있느냐를 알 수 있다...

더욱 놀라운 것은....
오늘 포털사이트 네이버 메인 화면에서 왼쪽 중간쯤에 위치한 배너광고다....

아래에 몇몇의 내용이 있다.
과연 0.35 : 1 의 합병비율과 같은 비율의 주가를 기준으로 합병일에 딱 맞춰질까??

주식매수청구권은 굳이 이번 주주총회에서 반대 의결권을 표명하지 않아도
즉, 기권을 하여도 행사할 수 있다는 언급을 통해 반대표를 저지하고 있어 보인다.

7/17에 있을 주주총회의 결과와 함께 앞으로의 삼성물산 행방이 아주 흥미롭게 다가온다..
삼성이 이번 기회를 통해 사회에도 많은 환원도 하며,
국민들에게 사랑 받는, 국민대표기업이 되는 발걸음의 시작이 되길 바란다.

나 또한 삼성물산의 주주이며,
아직 중립에 있는 처지이지만, 수 많은 소액주주들을 응원합니다.


네이버 메인 배너 


삼성물산 합병관련 내용





 

DOM Tree

Posted by ironmask84
2015. 7. 13. 11:24 나는 프로그래머다!/HTML5


DOM Tree는 아래와 같다.


그림 : http://web.stanford.edu/class/cs98si/slides/the-document-object-model.html


ex) HTMLLIElement : http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/html.html#ID-74680021

* jQuery를 이용하면, 이러한 관계를 잘 몰라도 JavaScript 코딩이 수월하다.

즉, document.getElementById('ironmask').tagName 는 HTMLLIElement라는 객체를 반환합니다.
위 상수를 $()로 둘러싸게 되면, Jquery 타입을 갖게 됩니다.
아래처럼 대입해놓고, constructor 속성을 찍어보면 확연히 확인 가능합니다.


var sample = document.getElementById('ironmask').tagName
var j_sample = $(document.getElementById('ironmask').tagName)
console.log(sample.constructor)