>웹 프론트엔드 >JS 튜토리얼 >javascript_javascript 스킬에서 Alert()와 console.log()의 차이점

javascript_javascript 스킬에서 Alert()와 console.log()의 차이점

WBOY
WBOY원래의
2016-05-16 15:42:471337검색

[1]경고()

[1.1] 차단 효과가 있습니다. 확인을 클릭하지 않으면 후속 코드를 계속 실행할 수 없습니다.

[1.2] 경고()는 문자열만 출력할 수 있습니다. 경고 출력이 객체인 경우 toString() 메서드가 자동으로 호출됩니다.

예: 경고([1,2,3]);//'1,2,3'

[1.3] 경고는 여러 매개변수 쓰기를 지원하지 않으며 첫 번째 값만 출력할 수 있습니다

예: 경고(1,2,3);//1

[2]console.log()

[2.1] 인쇄소에서 출력

[2.2] 모든 종류의 데이터를 인쇄할 수 있습니다

예: console.log([1,2,3]);//[1,2,3]

[2.3] 다중 매개변수 쓰기 지원

예: console.log(1,2,3)// 1 2 3

alert와 console.log 결과가 다르다고요?

score = [1,2,3];
sortedScore = [];
console.log(score);
sortedScore = score.sort(sortNumber)
console.log(sortedScore);
function sortNumber(a, b) {
  return b - a;
}

위 출력:
[3, 2, 1]
[3, 2, 1]

그러나 알림으로 변경:

score = [1,2,3];
sortedScore = [];
alert(score);
sortedScore = score.sort(sortNumber)
alert(sortedScore);
function sortNumber(a, b) {
  return b - a;
}

위 출력:
1, 2, 3
3, 2, 1

왜 이런 일이 일어나는 걸까요? 전부는 아닙니다:
1, 2, 3
3, 2, 1
?

일부 조사 결과 크롬 구현에 문제가 있는 것으로 나타났습니다. 출력에 대해 부적절한 최적화를 수행하고 다음과 같은 참조 유형이 발생할 때 "지연" 평가에 해당하는 console.log의 실제 실행을 연기했습니다. 배열과 객체에서 위와 같은 문제가 발생합니다.

https://bugs.webkit.org/show_bug.cgi?id=35801

지난달 개발버전에서 수정된 매우 역사적인 BUG입니다.

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