'연산자'에 해당되는 글 2건

  1. 2008.12.01 | [javascript] Delete 연산자 - 배열의 원소 지우기
  2. 2008.12.01 | [javascript] typeof 연산자

javascript에서의 delete는 개체(object), 개체의 속성(property),

배열의 특정 인덱스에 있는 원소(element)를 지우는 연산자이며. 문법은 다음과 같다

delete objectName
delete objectName.property
delete objectName[index]
delete property // with 문장 안에서만 유효

 

objectName은 개체 이름이고, property는 개체에 존재하는 속성이고, index는 배열의 원소 위치를 나타내는 정수.

네 번째 형식은 개체의 속성을 지우는 코드인데, with 문장 안에서만 사용할 수 있다.

암시적으로 선언된 변수를 지울 때는 delete 연산자를 사용할 수 있지만

단 var 문장을 이용해서 선언된 변수는 지울 수 없다.

delete 연산자 실행이 성공하면, 속성이나 원소가 undefined로 설정되며.

delete 연산자는 실행이 가능하면 true를 반환하고, 불가능하면 false를 반환하게 된다.

x=42
var y= 43
myobj=new Number()
myobj.h=4      // h라는 속성을 만듭니다
delete x       // returns true (암시적으로 선언된 변수는 지울 수 있습니다)
delete y       // returns false (var로 선언한 변수는 지울 수 없습니다)
delete Math.PI // returns false (미리 정의된 속성은 지울 수 없습니다)
delete myobj.h // returns true (사용자 정의 속성은 지울 수 있습니다)
delete myobj   // returns true (암시적으로 선언되었으므로 지울 수 있습니다)

 

배열의 원소를 지우기


머 당연하지만 배열의 원소를 지워도, 배열의 길이에는 변화가 없게 된다.

즉 delete로 지우는 경우 원소는 더이상 배열에 존재하지 않게 된다(undefined).

하지만 delete와 배열원소에 undefined를 할당한 경우 조금 의미가 다르다.

 

먼저 아래 예제에서 trees[3]을 delete로 제거한 예제이다.

 

trees=new Array("redwood","bay","cedar","oak","maple")
delete trees[3]
if (3 in trees) {
   // 이 블록은 실행되지 않는다.

   alert(trees[3]);
}

즉 trees라는 배열에는 trees[3] 이라는 배열원소 자체가 삭제(undefined)되어 실행되지 않지만

단지 배열 원소가 존재하긴 하지만 정의되지 않은 값을 가지도록 하고 싶다면

delete 연산자 대신 undefined 키워드를 사용하면 된다.

 

다음은 trees[3]undefined 값을 할당하는 경우이다

 

trees=new Array("redwood","bay","cedar","oak","maple") trees[3]=undefined if (3 in trees) { // 이 블록은 실행된다. }

 

undefined 키워드로 배열의 값은 정의되지 않았지만 배열원소는 유지되므로 블록은 실행된다

 

 

[javascript] typeof 연산자

WEB2.0/ExtJS | 2008. 12. 1. 11:27
Posted by 시반

typeof 연산자는 형식 정보를 문자열로 반환하며 "Number", "String", "Boolean", "Object", "Function", "undefined"라는 6가지 형식을 반환할 수 있습니다.

선택적인 요소로 typeof 구문에 괄호를 사용할 수도 있기에 다음 둘 중 한 가지 방법으로 사용할 수 있습니다.

1. typeof operand
2. typeof (operand)

 

if ( typeof(object) != "Object" ) {

alert('객체가 아닙니다.');

}

if ( typeof 'AAA'  != 'Number' ) {

alert('숫자가 아닙니다.');

}

 

또다른 예를 들어 우리가 이런 변수를 정의했다고 해봅시다.

  • var myFun = new Function("5+2");
    var shape="round";

    var size=1;

    var today=new Date()
typeof는 이 변수들에 대해서 다음과 같은 결과를 반환할 것입니다. 
  • typeof myFun is function
    typeof shape is string

    typeof size is number

    typeof today is object

    typeof dontExist is undefined

truenull 키워드에 대해서 typeof 연산자는 다음과 같은 결과를 반환합니다.

  • typeof true is boolean
    typeof null is object

수와 문자열에 대해서 typeof 연산자는 다음과 같은 결과를 반환합니다.

  • typeof 62 is number
    typeof 'Hello world' is string

속성 값에 대해서 typeof 연산자는 속성이 포함하고 있는 값의 형식을 반환합니다.

  • typeof document.lastModified is string
    typeof window.length is number
    typeof Math.LN2 is number

메소드와 함수에 사용하면 typeof 연산자는 다음과 같은 결과를 반환합니다.

  • typeof blur is function
    typeof eval is function
    typeof parseInt is function
    typeof shape.split is function

미리 정의된 개체들에 대해서 typeof 연산자는 다음과 같은 결과를 반환합니다.

  • typeof Date is function
    typeof Function is function
    typeof Math is function
    typeof Option is function
    typeof String is function
 
블로그 이미지

시반

시반(詩伴)이란 함께 시를 짓는 벗이란 뜻을 가지고 있습니다. 함께 나눌수 있는 그런 공간이길 바라며...

카테고리

분류 전체보기 (233)
개발 이야기 (73)
WEB2.0 (57)
DB2 (24)
MySQL (6)
오라클 (26)
기타 (44)
취미 (0)
잡담 (2)