try{
정상적으로 처리되어야할 코드
런타임에서 에러가 발생하여 에외가 발생하거나,
throw 문을 통해 예외를 직접 발생시킬수 있다.

}catch(e){
예외 발생시 실행될 코드
  예외와 관련된 정보를  e 변수를 통해 참조
  예외를 처리 or 무시할수 있고, 
  throw문을 통해 예외를 다시 발생시킬수 있습니다. 
}finally{
try, catch 실행 완료후 무조건 실행이 필요한 코드
}


var x = 5;
var result;

try{
    result = x * y;
    document.writeln(result);
} catch(e){
    document.writeln(e);
}finally{
    document.writeln('ok');
}
/*
result : 
ReferenceError: y is not defined 
ok 
*/

try{
    result = x / 0;
    document.writeln(result);
    throw new Error('0으로 나눌 수 없습니다.');
} catch(e){
    document.writeln(e);
    document.writeln('
'); }finally{ document.writeln('ok'); document.writeln('
'); } /* result : 5 Error: 0으로 나눌 수 없습니다. ok */ try{ var calculator; calculator = calculator || {add : function(op1, op2){ return op1 + op2; }}; calculator && document.write(calculator.add(2,3)); calculator && document.write(calculator.sub(2,3)); }catch(e){ document.write(e); } /* result : 5 TypeError: calculator.subtract is not a function */


Posted by 달팽이맛나
,

[JavaScript] for...in

JavaScript 2014. 1. 10. 17:45


for...in 문은 객체의 프로퍼티나 배열의 원소에 대해 순서대로 반복처리를 실행


변수에는 객체로부터 나온 프로퍼티명이 저장되거나, 배열로부터 나온 인덱스번호가 저장된다.


for( 변수 in "객체" or "배열"){


}

var arr = [ {name: '정도전', age: 50}, {name: '이성계', age: 60}, {name: '정몽주', age: 54}, {name: '이방원', age: 43} ]; for(var idx in arr){ for(var prop in arr[idx]){ document.writeln(prop + ' : ' + arr[idx][prop]); if(prop == 'age'){ break; } } }


Posted by 달팽이맛나
,

첫번째 값을 평가한후 뒤에 값을 평가하지 않는것.


//논리 연산자

/*
var aa = false;
var bb = true;

aa && bb // bb 평가x
aa || bb // bb 평가
*/


var calculator;

// &&연산에서 좌측 표현식이 undefined값을 가지면 
//false로 평가되어 우측 평가식을 실행하지 않는다.
calculator && document.writeln("calcuator.add(2,3):" + calculator.add(2,3));

calculator = {
	add : function(op1, op2){
		return op1 + op2;
	}
};

// && 연산에서 좌측 표현식이 0, undefined, null, NaN, "" 이외의 값을 가지면 
// true로 평가되어 우측평가식이 실행됩니다.
calculator && document.writeln("calcuator.add(2,3):" + calculator.add(2,3));

// || 연산에서 좌측 표현식이 undefined값을 가지면 false로 평가되어 우측 평가식을 실행함.
calculator.subtract || (calculator.subtract = function(op1, op2){ return op1 - op2; });
calculator.subtract || document.writeln("calcuator.subtract (2,3):" + calculator.subtract (2,3));

		


Posted by 달팽이맛나
,

undefined 

- 변수가 선언은 되었지만 값이 할당된 적이 없는 변수에 접근하건, 존재하지 않은 객체 프로퍼티에 접근할 경우 반환되는 값.

- 논리 연산에서 false로, 

  산술연산에서는 NaN로, 

  문자열 연산에서는 "undefined"로 변환되어 연산됨.



null

- 예약어

- 보통 참조 타입과 함께 쓰여, 어떠한 객체도 나타내지 않는 특수한 값으로 사용

- 논리 연산에서는 false로, 

   산술연산에서는 0으로, 

   문자열 연산에서는 "null"로 변환되어 연산됨.

		
//undefined와 null
var a;
var obj = {};
		
document.writeln('a: '+ a);//a: undefinde
document.writeln('obj: '+ obj);//obj: [object Object]
document.writeln('obj.prop: '+ a);//a: obj.prop:: undefined
		
obj = null; //객체 참조를 제거
document.writeln("obj: " + obj);//obj : null
		
if(!a){} //!undefined
if(!obj){} //!null


Posted by 달팽이맛나
,


리터럴(Literal) : 프로그램의 코드상에 데이터의 값을 표현하는 방식


자바스크립트의 리터럴 :

 - 숫자 리터럴, 문자열 리터럴, 배열 리터럴, 객체 리터럴, 함수 리터럴, 블리언 리터럴, undefined와 null 리터럴



Posted by 달팽이맛나
,

[JavaScript] URL 알아내기

2009. 9. 8. 14:55

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

 function keyCheck(){
        alert(event.keyCode);
}
<input type="text" keydown="keyCheck">


코드 코드 코드 코드 코드 코드
←(백스패이스) 8 스페이스 32 0 48 A 65 윈도우(왼쪽) 91 F1 112
TAB 9 PAGEUP 33 1 49 B 66 윈도우(오른쪽) 92 F2 113
ENTER 13 PAGEDN 34 2 50 C 67 기능키 93 F3 114
SHIFT 16 END 35 3 51 D 68 0(오른쪽) 96 F4 115
CTRL 17 HOME 36 4 52 E 69 1(오른쪽) 97 F5 116
ALT 18 ←(중간) 37 5 53 F 70 2(오른쪽) 98 F6 117
PAUSEBREAK 19 ↑(중간) 38 6 54 G 71 3(오른쪽) 99 F7 118
CAPSLOOK 20 →(중간) 39 7 55 H 72 4(오른쪽) 100 F8 119
한/영 21 ↓(중간) 40 8 56 I 73 5(오른쪽) 101 F9 120
한자 25 INSERT 45 9 57 J 74 6(오른쪽) 102 F10 121
ESC 27 DELETE 46     K 75 7(오른쪽) 103 F11 122
    NUMLOCK 144     L 76 8(오른쪽) 104 F12 123
    SCROLLLOCK 145     M 77 9(오른쪽) 105    
            N 78 .(오른쪽) 110    
            O 79 /(오른쪽) 111    
            P 80 *(오른쪽) 106    
            Q 81 +(오른쪽) 107    
            R 82 -(오른쪽) 109    
            S 83 -(중간) 189    
            T 84 `(왼쪽콤마) 192    
            U 85 (중간) 220    
            V 86        
            W 87        
            X 88        
            Y 89        
            Z 90        

Posted by 달팽이맛나
,

function setCookie( name, value, expiredays ){
 var todayDate = new Date();
 todayDate.setDate( todayDate.getDate() + expiredays );
 document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ";"
 }


function getCookie( name ){
var nameOfCookie = name + "=";
var x = 0;

while ( x <= document.cookie.length ){
var y = (x+nameOfCookie.length);
if ( document.cookie.substring( x, y ) == nameOfCookie ) {
if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 )
endOfCookie = document.cookie.length;
return unescape( document.cookie.substring( y, endOfCookie ) );
}
  
x = document.cookie.indexOf( " ", x ) + 1;
  
if ( x == 0 ) break;
}
 return "";
}
Posted by 달팽이맛나
,
Posted by 달팽이맛나
,


<html>
<head>
<script type="text/javascript">

 window.onscroll = bLayer01;
 window.onresize = bLayer01;
 bLayer_open01 = true;
 openbLayer01();

 function openbLayer01() {

var layer = document.getElementById("b_layer01");

if (bLayer_open01) {

bLayer_open01 = false;
 layer.innerHTML = "<img src='이미지.gif' onclick='openbLayer01();>";

} else {

bLayer_open01 = true;
layer.innerHTML = "<img src='이미지.gif' >";

}

 bLayer01();

 }

 function bLayer01() {

var layer = document.getElementById("b_layer01");

  if (bLayer_open01) {

   layer.style.top =  (50+document.body.scrollTop) + 'px';

  }else {

   layer.style.top =  (50+document.body.scrollTop) + 'px';

  }

}

</script>
</head>

<body>

<div style="position:absolute;padding-left:9px;display:block;" id="b_layer01"></div>

</body>
</html>

Posted by 달팽이맛나
,