내가 찾은 세 가지 방법 '에서' 문자열 변수를 나라를 위해 JavaScript. 나는 이러한 세 가지 방법을 검색할 수 있으며, 이들은 모두 사용 소스 코드를 포함한다. 그들 사이에 차이가 다운로드되었는지 싶다.
value.toString()
String(value)
value + ""
그들은 모두 동일한 출력을 깔의 않지만, 그 중 하나가 다른 것보다 더 나은? 내가 말할 " 절감할 수 있다는 장점이 있다. ',' + " that& # 39 의 장점이 있지만, 일부 문자는 크지 않아, 뭐 할일없나?
그들은 다르게 동작할 때 '가치' 는 'null'.
'가치' 는 '정의되지 않은 행동을 매우 유사한 있으면 어떻게' (http://otl. jbabey& # 39 의 오토메이티드).
그 밖의 성능 차이가 있을 수 있는 경우를 제외하고는 거의 you& 엄청난 규모의 루프를 isn& # 39, t # 39, re 사용 방법에 대한 걱정.
그러나 그들은 아마도 데이터베이스에구성원을 질문이예요 차이점이 있습니다 관련이 없습니다. 예를 들어, tostring 정의되지 않은 변수에 대한 프로토타입 존재하지 않지만, 다른 두 가지 방법을 사용하여 문자열으로 undefined 변환할 수 있습니다.
var foo;
var myString1 = String(foo); // "undefined" as a string
var myString2 = foo + ''; // "undefined" as a string
var myString3 = foo.toString(); // throws an exception
[이 에스페르프 테스트] (http://jsperf.com/cast-to-string/2) 에 따르면, 그들이 서로 속도. 하지만, 엄청난 금액을 you& # 39 한 것 하나라도 수행해야 하고 이를 이용하는 것이 좋다.
완전성을 위해. 이를 [아소이어] (https://stackoverflow.com/users/426894/asawyer) 이미 밝힌 바 사용할 수도 있습니다 () ',' 네스토스트링 메서드입니다.
참고로, 위의 모든 반드시 1 명 외에, 정해진 값 'v':
그래서 우리는 다음과 같은 항목을 할 수 있는
var mixin = {
valueOf: function () { return false },
toString: function () { return 'true' }
};
mixin === false; // false
mixin == false; // true
'' + mixin; // "false"
String(mixin) // "true"
Ff 에서 tested 34.0 및 노드입니다 0.10
null 인 경우, 확인, 난, 0, false, & # 39 정의되지 않은 모든 변환하면 & # 39. 그럼 ' (s? # 39, & # 39 s+&. . & # 39, & # 39;) '빠르다.
지켜보리니 http://jsperf.com/cast-to-string/8
참고 - 다양한 브라우저에서 변경분 상당 부분이 이 시점에서.
실제 예: # 39, ve got a 로그 함수를 호출할 수 있는 i& 있는 임의의 개수의 매개변수입니다: '로그 (", {} 과 {} 는 foo bar 는 ", param1, param2)'. 'True', 'a' 로 설정된 경우 디버그로 플래깅 프레젠테이션이든 브래킷에 교체 및 문자열 (msg) '' 콘솔드로그 주어진 매개변수입니다 전달됩니다. 매개변수입니다 될 수 있으며, 숫자, JSON / AJAX 호출에 의해 귀의하지않는다고 5월 문장열 있는모든, 어쩌면 'null'.