모든 사람은 JavaScript를 사용하여 변수를 문자열로 변환하는 3가지 방법이 있다는 것을 알아야 합니다. 이 기사에서는 이러한 방법을 자세히 소개하고 장점과 단점을 비교할 것입니다. 이번 글에서는 자바스크립트에서 변수를 문자열로 변환하는 세 가지 방법을 주로 소개합니다. 이 세 가지 방법은 value.toString(), "" + value, String(value) 입니다. 필요하신 분은 편집자를 따라가서 함께 배워보세요. 모두에게 도움이 되기를 바랍니다.
변수를 문자열로 변환하는 3가지 방법은 다음과 같습니다.
value.toString()
"" + value
String(value)
값이 null이거나 정의되지 않은 경우, 첫 번째 방법은 작동하지 않습니다. 그리고 방법 2와 방법 3은 기본적으로 동일합니다.
""+값: 빈 문자열에 값을 추가하여 문자열로 변환합니다. 이 방법은 사실 다른 사람이 개발자의 의도를 이해하기 어렵게 만들 수 있는 약간 모호한 기술입니다. 그러나 이는 의견의 문제이며 일부 사람들은 이 방법을 선호합니다.
String(value): 이 방법은 매우 명확합니다. String() 함수를 사용하여 값을 문자열로 변환합니다. 그러나 String()에는 두 가지 다른 용도가 있으므로 특히 Java 개발자의 경우 혼동하기 쉽습니다. String()이 new 연산자를 사용하여 생성자로 사용되면 새로 생성된 String 객체를 반환합니다. new 연산자 없이 String()을 호출하면 값이 원래 문자열로 변환됩니다. 둘은 매우 다릅니다:
> String("Fundebug") === new String("Fundebug") false > typeof String("Fundebug") 'string' > String("Fundebug") instanceof String false > typeof new String("Fundebug") 'object' > new String("Fundebug") instanceof String true
사실 String()을 생성자로 사용하는 것은 그리 일반적이지 않으므로 문자열을 변환하는 데만 사용하세요.
""+value와 String(value)
""+value와 String(value)의 미묘한 차이점은 둘 다 값을 문자열로 변환하는 방법입니다. 실제로 결과는 동일하지만 방법은 약간 다릅니다.
프리미티브를 문자열로 변환
두 메서드 모두 내부 함수 ToString()을 사용하여 프리미티브를 문자열로 변환합니다. ToString() 함수는 ECMAScript 5.1(§9.8)에 정의되어 있지만 직접 사용할 수 없으므로 내부 함수라고 합니다. 다음 표는 ToString() 함수가 기본 기본 유형을 문자열로 변환하는 방법을 보여줍니다.
"true" 또는 "false" | |
---|---|
String | |
개체 두 가지 방법 모두 문자열로 변환하기 전에 먼저 객체를 기본 형식으로 변환합니다 | |
ToPrimitive(Number): 먼저 obj.valueOf를 호출하고 결과가 원시적이면 반환하고, 그렇지 않으면 obj.toString()을 다시 호출하고 결과가 원시적이면 반환하고, 그렇지 않으면 TypeError를 반환합니다. | |
ToPrimitive(String): obj.toString()이 먼저 호출된 다음 obj.valueOf()가 호출된다는 점을 제외하면 ToPrimitive(Number)와 유사합니다. | |
var obj = { valueOf: function() { console.log("valueOf"); return {}; }, toString: function() { console.log("toString"); return {}; } }; | 호출 결과: > "" + obj valueOf toString TypeError: Cannot convert object to primitive value > String(obj) toString valueOf TypeError: Cannot convert object to primitive value | 결과는 동일합니다
> var x = {} > x.valueOf() === x true
valueOf()의 반환 값이 원시적이지 않으므로 ToPrimitive(Number)는 valueOf()를 건너뛰고 toString()의 반환 값을 반환합니다. . 이런 방식으로 ToPrimitive(String)의 반환 값은 동일합니다.
객체가 부울, 숫자 또는 문자열 인스턴스인 경우 valueOf()는 기본 요소를 반환합니다. 즉, 둘의 계산 과정은 다음과 같습니다.
ToPrimitive(Number): valueOf()는 원시 값을 반환한 다음 ToString()을 사용하여 이를 문자열로 변환합니다.
ToPrimitive(String) : toString()은 ToString() 함수를 통해 기본 값을 문자열로 변환합니다.
계산 과정은 다르지만 결과는 같다는 것을 알 수 있습니다.
결론
그럼 어떤 방법을 선택해야 할까요? 값이 null 또는 정의되지 않은 것이 아닌지 확인할 수 있으면 value.toString()을 사용하세요. 그렇지 않으면 기본적으로 동일한 ""+value 및 String(value)만 사용할 수 있습니다.
관련 권장 사항:
Date 객체를 현지 시간을 기준으로 문자열로 변환하기 위한 JavaScript 메서드 toLocaleString()
변수를 문자열로 변환하기 위한 Javascript 메서드 소개
php 시차를 문자열 프롬프트로 변환 자세한 예
위 내용은 Javascript는 변수를 문자열 코드 공유로 변환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!