js 의 delete

1883 단어
ECMAScript 가 정의 하 는 대상 은 무질서 한 속성의 집합 입 니 다. 속성의 값 은 임의의 형식의 데이터 일 수 있 습 니 다.(이름 값 쌍) ECMAScript 는 내부 에서 만 사용 할 수 있 는 특성 을 정의 할 때 속성의 여러 가지 특징 을 묘 사 했 습 니 다. 이러한 특성 은 JS 엔진 의 실현 을 위해 서 이기 때문에 직접 접근 할 수 없습니다.내부 값 으로 볼 수 있 습 니 다.그 중 하 나 는 configurable 입 니 다. delete 를 통 해 속성 을 삭제 할 수 있 는 지, writable 특성 을 제외 한 다른 기능 을 수정 할 수 있 는 지 여 부 를 표시 합 니 다.
여기 서 언급 한 delete 는 대상 의 속성 을 삭제 하 는 역할 을 합 니 다.구체 적 으로 delete 연산 자 는 특정한 대상 에서 지정 한 속성 을 제거 합 니 다.삭제 에 성 공 했 을 때 true 로 돌아 갑 니 다. 그렇지 않 으 면 false 문법 으로 돌아 갑 니 다.
delete object.property 
delete object['property']

반환 값 은 특별한 것 이 있 습 니 다. 모든 상황 에 대해 true 입 니 다. 속성 이 자신의 설정 할 수 없 는 속성 이 아니라면 엄격 한 모델 이 false 로 돌아 가 는 것 이 아니 라 엄격 한 모델 에서 직접적인 보고 가 잘못 되 었 습 니 다.아래 와 같다
var obj = {}
Object.defineProperty(obj, 'a', {
  value: 1,
  configurable: false
})
delete obj.a // false
//   'use strict',Uncaught TypeError...

delete 연산 자 에 대한 다른 특징:
  • delete 작업 은 자신의 속성 에 만 작용 합 니 다 (원형 체인 의 속성, delete 이후 에는 이 속성 을 삭제 하지 않 습 니 다. 반환 값 은 true 이지 만)
  • var, let, const 가 만 든 속성 은 delete 작업 에서 삭제 할 수 없습니다.
  • var a = 1
    delete a // false
    let b = 2
    delete b //true
    console.log(b) // 2
    const c = 3
    delete c //true
    console.log(c) // 3
    
  • delete 도 배열 요소 삭제
  • 에 사용 할 수 있 습 니 다.
    var arr = [1, 2, 3, 4]
    delete arr[0]
    console.log(arr) // [undefined x 1, 2, 3, 4]
    

    주의해 야 할 것 은 arr 배열 의 length 속성 은 delete 작업 후 변 하지 않 았 습 니 다.배열 이 콘 솔 에서 인쇄 한 결 과 는 삭 제 된 위치 이 고 요 소 는 undefined x 1 로 표 시 됩 니 다.여기 와 배열 요 소 는 단순히 undefined 인지 차이 가 있 습 니 다.arr 는 희소 한 배열 로 변 했 고 [undefined, 2, 3, 4] 는 밀집 배열 이다.
    또한 속성의 내 적 특성 configurable 을 어떻게 설정 합 니까?자주 쓰 는 방법 은 Object. defineProperty () 입 니 다.또한 Object. create (prototype, propertiesObject) 를 통 해 대상 을 만 들 고, propertiesObject 를 설정 함으로써 속성의 다양한 특징 을 설정 할 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기