>  기사  >  웹 프론트엔드  >  a='abc'가 a=new String('abc')과 같지 않은 이유

a='abc'가 a=new String('abc')과 같지 않은 이유

小云云
小云云원래의
2018-01-03 10:58:522084검색

이 글은 a="abc"가 a=new String("abc")과 같지 않은 이유를 주로 소개합니다. 필요한 친구들이 참고하면 도움이 될 것입니다.

Obvious


a="abc"
typeof a //string
b=new String("abc")
typeof b // object
a==b //true
a===b //false

근데 왜요? 책도 많이 읽고 여러 전문가에게 물어봤지만 사실 여전히 혼란스러웠습니다. 나중에 참조할 수 있도록 여기에 기록해 두세요.

JS에서는 원본 데이터 유형과 패키징 유형을 구분합니다. Number, string, Boolean, null, undefine은 기본 데이터 유형이고, Number, String, Boolean은 패키징 유형입니다. new Number를 통해 생성되는 것은 패키징 유형의 파생 객체입니다. 따라서 둘은 동일하지 않습니다.

기본 유형을 직접 할당한 후의 사용 과정은 다음과 같습니다.

1. 문자열 유형의 인스턴스를 생성합니다.

2. 인스턴스에서 지정된 메서드를 호출합니다.

3 인스턴스를 삭제합니다. :

var a="123"
a.toFixed===Number.prototype.toFixed;


여기 또 다른 말이 있습니다: boxing, unboxing

Boxing은 이 값 클래스를 사용하여 해당 포장 객체를 구성하는 것입니다

var a=10 ,b="javascript" , c=true;
  var o_a=new Number(a);
  var o_b=new String(b);
  var o_c=new Boolean(c);

boxing의 가장 큰 역할은 값을 사용하는 것입니다. 객체로 다루다.

Unboxing은 패키징 객체를 값 유형으로 변환하는 것입니다

var a=10;
 var o_a=new Number(a);
 var b=o_a.valueOf();//这就是拆箱的过程。

관련 권장 사항:


ajax는 PHP 페이지의 반환 매개변수, 제어 할당 방법을 가져옵니다

jquery의 동적 ID 할당 정보 및 동적 ID 검색 방법 공유

php에서 js 배열에 값을 할당하는 방법

위 내용은 a='abc'가 a=new String('abc')과 같지 않은 이유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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