JavaScript 객체는 속성 또는 명명된 값의 모음입니다. 속성 값은 "." 기호를 통해 참조됩니다. 문자열에도 속성과 메서드가 있다는 것을 알 수 있습니다.
var s="안녕하세요, 세계!";
var word=s.substring(s.indexof("") 1,s.length);
문자열은 객체가 아닌데 왜 속성이 있습니까? 문자열 s의 속성이 참조되는 한 JavaScript는 새 문자열의 생성자를 호출하여 문자열 값을 객체로 변환합니다. 속성에 대한 참조를 처리하는 데 사용됩니다. 속성 참조가 끝나면 새로 생성된 개체가 삭제됩니다. 실제로 이 개체는 구현에서 반드시 생성되는 것은 아니지만 전체 프로세스는 다음과 같습니다. ).
문자열과 마찬가지로 숫자 및 부울 값에도 고유한 메서드가 있습니다. 임시 개체는 Number() 및 Boolean() 생성자를 통해 생성되고 이러한 메서드에 대한 호출은 이 임시 개체에서 발생합니다. 이 임시 개체를 래퍼 개체라고 합니다.
참고:
var s="test"; //문자열 선언
S.len = 4; // Len 속성 설정
Var t = s.Len; // 이 속성 쿼리
이때 t를 출력할 때는 정의되지 않아야 합니다. 코드의 두 번째 줄은 임시 문자열 객체를 생성하고 해당 len 속성에 값 4를 할당한 다음 코드의 세 번째 줄은 다음을 통해 새 개체를 설정합니다. 원래 문자열 값 s. len 속성을 읽으십시오. 이 속성은 당연히 존재하지 않으므로 t가 출력될 때의 값은 정의되지 않습니다.
이 코드는 숫자, 문자열 또는 부울 값의 속성 값(또는 메소드)을 읽을 때 객체처럼 동작하지만 해당 속성에 값을 할당하려고 하면 이 작업이 무시된다는 것을 보여줍니다. 유지되지 않는 임시 개체에서만 발생합니다.
문자열, 숫자, 부울 값의 속성에 접근할 때 생성되는 임시 개체를 래퍼 개체라고 합니다. 문자열 값과 문자열 개체, 숫자와 숫자 개체, 부울 값을 구분하는 데 가끔 사용됩니다. 및 부울 객체