javascript - JSON.parse()의 이스케이프 문자를 이해하는 방법은 무엇입니까?
世界只因有你
世界只因有你 2017-06-14 10:51:54
0
1
619

. . . 누군가 나에게 이런 질문을 했습니다. . 나도 잘 모르겠어

으아악

위 내용은 정상적으로 실행될 수 있습니다. . 결과는 {test: "这是一个对象, 里面有 test 字段"}


하지만 만약 test 字段里面加上 双引号아주 이상한 문제가 있다면...

으아악

위 오류가 보고되는 것은 정상적인 현상입니다.

지금 가입하세요转义符

으아악

결과는 여전히 오류입니다. 이 문자열을 직접 입력해도 그림과 같이 이스케이프된 문자열이 정상적으로 표시될 수 있습니다.


놀라운 점은. . 실수로 \ 作为转义符而不是 를 사용하여 이런 코드를 작성했습니다. . . 결과는 정상입니다.


근데 왜?

世界只因有你
世界只因有你

모든 응답(1)
学习ing

JSON.parse의 실행 프로세스가 실제로 두 번의 이스케이프를 거치기 때문일 것입니다.

Once는 문자열 자체의 이스케이프입니다.

으아악

은(는)

로 변환됩니다. 으아악

(이 문자열은 브라우저의 명령줄에 직접 입력할 수 있습니다)

Once는 문자열을 객체로 변환할 때의 이스케이프입니다:

로 변환되었기 때문입니다. 으아악

""는 """의 이스케이프 문자로 간주되어 개체로 올바르게 변환됩니다.

""이 하나만 있는 경우 문자열을 객체로 변환할 때 테스트 필드 값에 큰따옴표 두 쌍이 있으며 오류가 보고됩니다.

ES5 사양의 구문 분석 방법을 다시 확인했습니다.

첫 번째 단계는 해당 문자열 자체를 이스케이프 처리하는 것입니다

두 번째 단계는 문자열을 객체로 변환할 때의 이스케이프에 해당합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿