2017-10-17 3 views
2
var a = 10 
var b = new Number(10) 

console.log(a instanceof Number) 
console.log(b instanceof Number) 

누구든지 위의 두 선언과 a와 b의 정의가 다른지 알려 주시기 바랍니다.Var와 new의 차이점

+1

어쩌면이 게시물을 설명 할 수 나게 [) (** 새 번호를 **] (https://stackoverflow.com/questions/2381399/what -is-the-difference-between-new-number-and-number-in-javascript) 나머지는'new Number()'를 이해 한 후에 이해할 수 있습니다. – NewToJS

+1

[string 리터럴 및 JavaScript에서 문자열 개체?] (https : // stackoverflow.com/questions/17256182/what-is-the-the-difference-between-string-literalals-and-string-objects-in-javascript) – Chang

+1

제목이 잘못되었지만 'a'와 'b'는 모두 'var'입니다 –

답변

0

첫 번째 선언은 원시 데이터 유형과 같습니다.

두 번째 선언에서 new Number(10)을 사용한 곳은 object에 숫자를 보존하는 래퍼 함수 또는 class으로 간주됩니다.

는 두 경우 모두 지금 변수의 실제 유형을 확인, 실제의 차이를 보려면 :

console.log(typeof(a)) //should give you "number" 
console.log(typeof(b)) //should give you "object" 
0

var 키워드는 변수의 단순한 선언입니다. new 키워드는 새로운 유형의 object을 생성하는 데 사용됩니다. 프로그래밍을 완전히 이해하려면 일반적으로 프로그래밍에서 객체를 조사해야합니다.

1

new Number(10)으로 새 번호를 작성한다고 명시 적으로 나타내면 번호를 변수로 정의하는 대신 integer primitive value이 생성되는 반면에 숫자에는 wrapper object이 새로 작성됩니다. 자신의 typeof을 검사 할 때 따라서, 당신은 결과를 다른 얻을 :이 도움이

var a = 10; 
 
var b = new Number(10); 
 

 
console.log(typeof a); 
 
console.log(typeof b);

희망을! :)

+0

아주 좋습니다. 그것은 숫자 원시적 인 가치를 만듭니다 ... 나머지는 생각됩니다. – Shadow

+1

어쨌든, 내 부분에 대한 약간의 감시 : P 고정 :) –

+0

설명을 위해 buddy에게 감사하지만 var = 10이라고 선언하면 변수에 대해 여러 개의 메소드가 있지만 생성자는 없습니다. 그래서 당신도 이것을 설명 할 수 있습니까? 자바 스크립트에는 정수 개념이 없으며 JavaScript 숫자는 항상 배정도 부동 소수점 숫자로 저장됩니다. –

1

첫 번째는 프리미티브를 만듭니다. 다른 대상.

숫자 개체에 대한 기본 사용

은 다음과 같습니다 인수가 숫자로 변환 할 수없는 경우

1), 그것은이 NaN을 반환합니다.

2) 생성자가 아닌 컨텍스트 (즉, new 연산자 없음)에서 Number를 사용하여 유형 변환을 수행 할 수 있습니다.

reference

은 이론적으로 차이 그러나 실제로 없음에있다. 자바 스크립트 엔진은 객체 일 필요가있을 때 자동으로 객체를 원시 객체로 묶습니다.

var number = 42; 
// calling .toFixed will 'box' the primitive into a number object, 
// run the method and then 'unbox' it back to a primitive 
console.log(number.toFixed(2)); 

생성자 함수에서 프리미티브를 반환하려는 경우에만 사용할 수 있습니다.

function Foo() { 
    return 42; 
} 

var foo = new Foo(); 
console.log(foo); // foo is instance of Foo 

function Bar() { 
    return new Number(42); 
} 

var bar = new Bar(); 
console.log(bar); // bar is instance of Number 

new Number(10) == new Number(10) return false 

enter image description here

관련 문제