While [] + []
은 빈 문자열이며 [] + {}
is "[object Object]"
이며 {} + []
is 0
입니다. 왜 {} + {}
NaN입니까?
> {} + {}
NaN
왜 내 질문은 아닌 ({} + {}).toString()
것입니다 "[object Object][object Object]"
동안 NaN.toString()
이다 "NaN"
, 이 부분은 이미 여기에 답이 있습니다 .
내 질문은 왜 이것이 클라이언트 측에서만 발생합니까? 서버 측 ( Node.js ) {} + {}
입니다 "[object Object][object Object]"
.
> {} + {}
'[object Object][object Object]'
요약 :
클라이언트 측에서 :
[] + [] // Returns ""
[] + {} // Returns "[object Object]"
{} + [] // Returns 0
{} + {} // Returns NaN
NaN.toString() // Returns "NaN"
({} + {}).toString() // Returns "[object Object][object Object]"
var a = {} + {}; // 'a' will be "[object Object][object Object]"
Node.js에서 :
[] + [] // Returns "" (like on the client)
[] + {} // Returns "[object Object]" (like on the client)
{} + [] // Returns "[object Object]" (not like on the client)
{} + {} // Returns "[object Object][object Object]" (not like on the client)
{}
식 또는 원시 객체가 문맥에 따라 같은 하나 해석 될 수있다. 코드는 클라이언트와 서버에서 동일하지만 {}
코드를 입력하는 컨텍스트가 다르기 때문에 다르게 해석 될 수 있습니다.