가 String
가 Object
인 (이 이제까지 필요합니다 어디도 하나의 생각하는 것 수 없기 때문에),하지만 원시 버전은 'Hello'
(와 리터럴로 생성되는 존재하고 지금까지 가장 일반적입니다 익숙한).
사람이 new String()
을 사용하여 다른 유형을 예를 들어 함수에서 String
으로 변환하는 경우가 있습니다.
function leadingZero(number, padding) {
number = new String(number);
...
}
선도 0은 Number
에서 중요하지, 그래서 그것은 String
해야합니다.
그러나 나는 여전히 String
(''
)으로 연결하여 Number
을 String
으로 만든 것을 선호했을 것입니다.
function leadingZero(number, padding) {
number += '';
...
}
이 암시 적으로 String
원시를 반환 Number
의 toString()
를 호출합니다.
나는 사람들이 헤이 typeof foo==="string"
바보 - 증거가되지 않은 문자열이 new String
사용하여 생성되는 경우 typeof
우리에게 object
를 제공하기 때문에 말 것을 읽고 있었다.
당신은
isString()
방법과 같이 바보가 증거 할 수
...
var isString = function(str) {
return Object.prototype.toString.call(str) == '[object String]';
}
jsFiddle.
여러 window
환경에서 작동합니다. constructor
속성을 확인할 수도 있지만 복수 window
환경에서는 실패합니다.
이 답변에 Felix Kling의 덧글을 참조하십시오.
좋은 질문이기 때문에 어쨌든 투표했습니다. –
내가 생각할 수있는 한 가지 이유는 특정 이유로 문자열 인스턴스에 새 속성을 추가하는 것입니다. 'new String'으로이 문자열을 만들어야합니다. –