찾다

 >  Q&A  >  본문

javascript - [1] == [1] 이것은 거짓인가요, 사실인가요?

[1] == [1] 인쇄된 값의 개수가 거짓입니다.

伊谢尔伦伊谢尔伦2751일 전2007

모든 응답(6)나는 대답할 것이다

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:46:27

    비교 연산자 중 동등 연산자에 대한 자세한 소개는 다음과 같습니다.

    EQUAL(==)

    비교 연산자는 서로 다른 두 가지 유형의 피연산자의 유형을 변환한 다음 엄격한 비교를 수행합니다. 두 피연산자가 모두 개체인 경우 JavaScript는 내부 참조를 비교하고 해당 참조가 메모리의 동일한 개체(영역)를 가리키는 경우, 즉 스택 메모리의 참조 주소가 동일한 경우에만 동일합니다.

    위에 언급된 모든 내용은 정확합니다. 왜냐하면 [1] == [1]에서 두 배열은 서로 다른 객체이므로 동일하지 않기 때문입니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-05-19 10:46:27

    JavaScript中,数组是Object
    这一语句通过字面量创建了两个Array, 그것들은 서로 다른 객체이므로 동일하지 않습니다.

    회신하다
    0
  • 阿神

    阿神2017-05-19 10:46:27

    2 배열 개체는 동일한 개체가 아닙니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-05-19 10:46:27

    비교된 값이 기준값인 경우, 여기의 [1]과 [1]은 두 값이 동일한 객체인지 비교하므로 거짓입니다

    회신하다
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:46:27

    Ecma-262.pdf
    7.2.13 추상 평등 비교
    已经明确说明了,这里的 [1] = [1] 实际是 [1] === [1] 正好试用第一条。


    x와 y가 값인 x == y 비교는 true 또는 false를 생성합니다. 이러한 비교는 다음과 같이 수행됩니다.

    1. Type(x)가 Type(y)와 동일하면 a. 엄격한 평등 비교 x === y를 수행한 결과를 반환합니다.

    2. x가 null이고 y가 정의되지 않은 경우 true를 반환합니다.

    3. x가 정의되지 않고 y가 null이면 true를 반환합니다.

    4. Type(x)가 Number이고 Type(y)가 String이면 비교 결과 x == ToNumber(y)를 반환합니다.

    5. Type(x)가 String이고 Type(y)가 Number인 경우 비교 결과를 ToNumber(x) == y로 반환합니다.

    6. Type(x)가 Boolean인 경우 비교 결과를 ToNumber(x) == y로 반환합니다.

    7. Type(y)가 Boolean이면 비교 결과 x == ToNumber(y)를 반환합니다.

    8. Type(x)가 문자열, 숫자 또는 기호이고 Type(y)가 객체인 경우 비교 결과를 반환합니다. x ==
      ToPrimitive(y).

    9. Type(x)가 Object이고 Type(y)가 String, Number 또는 Symbol인 경우 비교 결과를 ToPrimitive(x)
      == y로 반환합니다.

    10. 거짓을 반환합니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-19 10:46:27

    객체 유형은 메모리 주소를 비교하므로 거짓입니다

    회신하다
    0
  • 취소회신하다