> 웹 프론트엔드 > JS 튜토리얼 > JavaScript가 and - 연산자를 사용하여 예상치 못한 결과를 생성하는 이유는 무엇입니까?

JavaScript가 and - 연산자를 사용하여 예상치 못한 결과를 생성하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-17 09:10:25
원래의
783명이 탐색했습니다.
Why Does JavaScript Produce Such Unexpected Results with the   and - Operators?
덧셈 연산자 및 배열

덧셈 연산자( )를 배열과 함께 사용할 때 고유한 문제가 발생합니다.

[] []:

예기치 않게 두 개의 빈 배열을 연결하면 빈 배열이 생성됩니다. string.

    [] {}:
  • 빈 배열과 객체를 추가하면 "[Object]"가 생성되며, 이는 연산자가 배열을 기본 요소로 변환함을 의미합니다.
  • {} []:
  • 이 동작은 JavaScript 엔진에 따라 다릅니다. 동영상에서는 결과가 0이어야 한다고 제안하지만 일부 환경에서는 "[객체]"를 반환합니다.
  • {} {}:
  • 두 객체를 추가하면 "객체"가 생성되어 JavaScript가 객체를 변환함을 나타냅니다.
  • 숫자에서 문자열 빼기
  • 연산자가 다음 값에 적용될 때 다양한 유형, 특성이 발생합니다:

Array(16).join("wat" - 1):

이 표현식은 "NaNNaNNaNNaNNaNNaN"을 생성합니다. JavaScript는 "wat" - 1을 NaN으로 강제 변환하고 이를 빈 문자열과 연결하여 조인 인수를 형성합니다.

    이러한 특성 이해
  • 이러한 동작을 이해하려면 다음을 자세히 살펴보는 것이 중요합니다. ECMA-262 표준:

[] []:

배열은 toString() 메서드를 사용하여 기본 형식으로 변환되며, 빈 배열에 대해서는 빈 문자열을 반환합니다.

    [] {}:
  • 객체는 toString()을 사용하여 기본 형식으로 변환되므로 비어 있지 않은 경우 "[object Object]"가 생성됩니다. object.
  • {} []:
  • 빈 블록 문에는 반환 값이 없으므로 배열에 대해 단항 반환 0이 됩니다(빈 문자열로 강제 변환).
  • {} {}:
  • 연산자는 객체를 문자열로 변환하여 "[object Object]".
  • Array(16).join("wat" - 1):
  • NaN은 문자열에서 숫자를 빼려고 시도한 결과입니다.
  • 강제 표현식 문
  • 특정 상황에서는 {} 구문이 객체 리터럴이 아닌 표현식 문으로 해석될 수 있습니다. 예상되는 작업 결과가 바뀔 수 있습니다.
  • 강력하고 예측 가능한 코드를 작성하고 스크립트가 의도한 대로 작동하도록 하려면 이러한 이상한 JavaScript 동작을 이해하는 것이 중요합니다.

위 내용은 JavaScript가 and - 연산자를 사용하여 예상치 못한 결과를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿