원시 값엔 프로퍼티나 메서드가 없으므로 .length, toString()으로 접근하려면 객체 래퍼( ex. new String("abc") )로 감싸줘야 한다.(다른 언어에서는..) 하지만 자바스크립트는 원시 값을 알아서 박싱(래핑)하므로 아래와 같은 코드가 가능하다.
var a = "abc";
a.length; // 3
a.toUpperCase(); // "ABC"
그런데 이렇게 사용하는 경우가 상당히 빈번하기 때문에 개발자 입장에서는 객체 래퍼를 직접 선언해주면 브라우저 최적화를 시킬 수 있지 않을까? 할텐데 그건 좋은 생각이 아니다.
오래전부터 브라우저는 이런 흔한 경우를 스스로 최적화 하기 때문에, new String("abc"), new Number(42)처럼 코딩하지 말고, 그냥 원시값으로 "abc", 42를 사용하자.
숫자, 문자 등과 같은 원시값은 리터럴로 생성하자.