>  기사  >  웹 프론트엔드  >  Javascript는 변수를 문자열 코드 공유로 변환합니다.

Javascript는 변수를 문자열 코드 공유로 변환합니다.

小云云
小云云원래의
2018-02-08 11:07:331309검색

모든 사람은 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() 함수가 기본 기본 유형을 문자열로 변환하는 방법을 보여줍니다.

Boolean"true" 또는 "false"Number숫자를 문자열로 변환합니다. 예: "1.765"String변환할 필요 없음 개체 두 가지 방법 모두 문자열로 변환하기 전에 먼저 객체를 기본 형식으로 변환합니다 . 차이점은 ""+value는 내부 함수 ToPrimitive(Number)(날짜 유형 제외)를 사용하는 반면 String(value)은 내부 함수 ToPrimitive(String)을 사용한다는 것입니다. ToPrimitive(Number): 먼저 obj.valueOf를 호출하고 결과가 원시적이면 반환하고, 그렇지 않으면 obj.toString()을 다시 호출하고 결과가 원시적이면 반환하고, 그렇지 않으면 TypeError를 반환합니다. ToPrimitive(String): obj.toString()이 먼저 호출된 다음 obj.valueOf()가 호출된다는 점을 제외하면 ToPrimitive(Number)와 유사합니다. 다음 예를 통해 차이점을 이해할 수 있습니다. obj는 다음과 같습니다. 호출 결과: 결과는 동일합니다""+값과 문자열(값)은 다르지만 거의 우리는 느껴보세요. 왜냐하면 대부분의 개체는 개체 자체를 반환하는 기본 valueOf()를 사용하기 때문입니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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