>  기사  >  웹 프론트엔드  >  JavaScript 문자열에 속성을 추가할 수 없는 이유는 무엇입니까?

JavaScript 문자열에 속성을 추가할 수 없는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-26 22:14:03665검색

Why Can't I Add Properties to a JavaScript String?

JavaScript 프리미티브에 대한 속성 추가 제한

문자열 프리미티브에 속성을 추가할 수 없는 코드에 직면할 때 다음을 이해하는 것이 중요합니다. JavaScript 프리미티브의 기본 특성. JavaScript에는 8개의 고유한 유형이 있습니다. 7개의 기본 유형과 1개의 비원시 유형:

  • 기본 유형:

    • 정의되지 않음
    • Null
    • 부울
    • 숫자
    • BigInt
    • 문자열
    • 기호
  • 비원시형 유형:

    • 객체

기본 유형과 관련된 값은 기본 값으로 알려져 있으며 속성을 보유하는 기능이 부족합니다. 반대로, Object 비원시 유형의 값은 객체라고 하며 속성을 소유할 수 있습니다.

속성 할당 동작

속성을 변수에 할당할 때 다음과 같습니다. as:

<code class="js">foo.bar = 'abc';</code>

결과는 foo에 할당된 값의 유형에 따라 다릅니다.

  1. 정의되지 않음/Null: 오류가 발생합니다.
  2. 객체: 정의 또는 foo 객체에서 'bar'라는 속성을 업데이트하고 해당 값을 'abc'로 설정합니다.
  3. 다른 유형:

    • 엄격 모드: TypeError: "할당할 수 없습니다. foo의 'bar' 속성에: 객체가 아닙니다."
    • Loose 모드: 작업이 없으며 foo는 변경되지 않은 상태로 유지됩니다.

따라서 속성을 할당하면

사례별: 날짜 속성을 사용하여 문자열 기본 형식을 확장할 수 없습니다

제공된 예에서 변수 test에는 문자열 유형의 값이 포함되어 있습니다. 따라서 속성을 추가하려는 시도는 실패합니다.

<code class="js">test.test = "test inner";</code>

그리드에서 날짜 정렬에 대한 해결 방법

날짜 개체에 직접 바인딩하도록 코드를 수정하는 것이 비현실적인 경우, 다음 대체 솔루션을 고려해보세요.

  1. moment.js와 같이 날짜 정렬을 처리할 수 있는 라이브러리나 프레임워크를 사용하세요.
  2. 날짜 문자열을 원래 날짜 값을 사용하고 그리드 정렬 프로세스에서 해당 사용자 정의 유형을 사용합니다.
  3. 날짜 문자열을 구체적으로 처리하도록 그리드의 기본 정렬 메커니즘을 재정의하여 날짜순으로 정렬되도록 합니다.

위 내용은 JavaScript 문자열에 속성을 추가할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.