웹 프론트엔드 JS 튜토리얼 자바스크립트에서 if와 switch, ==, ===의 차이점과 연결 예에 대한 자세한 설명

자바스크립트에서 if와 switch, ==, ===의 차이점과 연결 예에 대한 자세한 설명

Jul 18, 2017 pm 02:46 PM
javascript js switch

이 글은 주로 JavaScript의 if와 switch, == 및 === 사이의 차이점과 연결을 소개합니다.

먼저 샘플 코드를 살펴보세요.


var a = '5';
switch (a) {
  case 5:
    console.log('==');
    break;
  case "5":
    console.log('===');
    break;
  default:
}
로그인 후 복사

최종 콘솔 표시는 ===이므로 안심하고 사용하실 수 있을 것 같습니다.

1.if와 switch

if가 가장 일반적으로 사용되므로 할 말이 많지 않습니다. 주목할 만한 점은 if가 실제로 ||와 매우 유사하다는 것입니다. if (conditionA){} else {}의 조건A가 true인 경우 else 이전의 코드 블록을 실행한 후에는 else의 코드도 확인하지 않습니다. 앞에 ||가 true인 것과 마찬가지로 나중에 오류가 많아도 무시됩니다. 물론 이 속성을 바탕으로 가장 많이 사용할 수 있는 코드 블록을 앞에 배치하여 판단 횟수를 줄입니다. 반면, if 판단이 많고 실행 가능한 횟수가 상대적으로 고르게 분포된 경우 후속 판단 문은 매번 이전 판단을 하나씩 실행해야 하므로 최적화에 도움이 되지 않습니다. 더 나은 접근 방식은


if (a > 0 && a <= 1) {
  //do something
} else if (a > 1 && a <= 2) {

} else if (a > 2 && a <= 3) {

} else if (a > 3 && a <= 4) {

} else if (a > 4 && a <= 5) {

} else if (a > 5 && a <= 6) {

}...
로그인 후 복사


if (a > 0 && a <= 4) {
  if (a <= 1) {
    //do something
  } else if (a > 1 && a <= 2) {

  } else if (a > 2 && a <= 3) {

  } else if (a > 3 && a <= 4) {

  }
} else if (a > 4 && a <= 8) {
  //
}..
로그인 후 복사

 와 같이 1단계 판단문을 2단계 판단문으로 바꾸는 것입니다. 각각의 이전 판단이 한 번 더 추가되더라도 후속 판단은 줄어듭니다. 나는 (4-1)*n 번을 했는데도 여전히 많은 돈을 벌었습니다. 문득 이 방법은 중첩된 루프와 약간 비슷하다는 생각이 들었습니다. 적은 수의 루프로 루프를 외부에 두는 것이 성능을 최적화하는 데 도움이 될 수 있습니다. 두 개 또는 여러 개의 레이어로 나누는 방법은 특정 상황에 따라 다릅니다.

  스위치는 if의 가장 가까운 동료입니다. 스위치와 if 사이의 상호 변환에 대해서는 말할 것도 없을 것입니다. if와 마찬가지로 스위치는 위에서 아래로 순차적으로 판단을 실행합니다. 차이점은 if의 else가 스위치에서 작동하지 않는다는 것입니다. 부서지다 . 중단이 발생하지 않으면


var a = 2;
switch (a) {
  case 1:
    console.log("1");
    //break miss
  case 2:
    console.log("2");
  case 3:
    console.log("3");
  default:
    console.log(&#39;no break&#39;);
}
로그인 후 복사

 와 같이 스위치가 계속 실행됩니다. 마지막으로 콘솔에는 2,3,no break 가 표시됩니다. 실제로 Break는 프로그램이 내부 실행 본문에서 벗어나 다음 사례 판단으로 이동하도록 유도하는 것으로, if(condition){A}{B}와 동일합니다. 물론, A와 B가 모두 실행됩니다. 두 가지 다른 작은 팁이 있습니다. 하나는


switch (A + B) {
  case a * b:
    console.log("1");
    break;
  case a / b + c:
    break;
    //...
  default:
    console.log(&#39;no break&#39;);
}
로그인 후 복사

 와 같이 스위치와 대소문자에 어떤 식이든 작성할 수 있다는 것입니다. 실제 비교는 (A+B)===(a*b) 및 (A+B)입니다. ) ===(a/b+c). 둘째, 스위치에는


switch (true) {
  case condition1:
    //do something
    break;
  case condition2:
    break;
    //...
  default:
    //..
    ;
}
로그인 후 복사

와 같은 특별한 사용법이 있습니다. 이때 스위치의 각 사례는 순서대로 판단되고 실행됩니다. 스위치(false)는 쓸모가 없나요?

2.== 및 ===

가장 고전적인 경우


var a = "5",
  b = 5;
a == b     //true
a === b     //false
var a = "ABC",
  b = "AB" + "C";
a === b     //true
로그인 후 복사

 다음이 사실인 이유는 실제로 문자열 유형의 불변성과 분리될 수 없습니다. 표면적으로는 b가 단지 문자열을 연결한 것처럼 보이지만 실제로는 원래의 b와는 아무런 관련이 없습니다. 각 문자열은 메모리 풀의 특정 위치에 저장됩니다. b="AB"+"C"가 실행되면 문자열 AB와 C가 삭제되고 b는 메모리 풀에서 ABC의 위치를 ​​가리킵니다. 문자열 ABC가 가리키기 전에 메모리 풀에서 발견되었기 때문에(a가 그것을 참조하기 때문에 존재한다), 따라서 b는 a와 같은 영역을 가리키고 합동 판단은 같다. 문자열 ABC를 가리키는 b 앞에 변수가 없으면 메모리 풀에는 변수가 없으며 그 안에 ABC를 위한 공간이 할당되고 b는 ABC를 가리킵니다.

위 내용은 자바스크립트에서 if와 switch, ==, ===의 차이점과 연결 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

권장 사항: 우수한 JS 오픈 소스 얼굴 감지 및 인식 프로젝트 권장 사항: 우수한 JS 오픈 소스 얼굴 감지 및 인식 프로젝트 Apr 03, 2024 am 11:55 AM

얼굴 검출 및 인식 기술은 이미 상대적으로 성숙하고 널리 사용되는 기술입니다. 현재 가장 널리 사용되는 인터넷 응용 언어는 JS입니다. 웹 프런트엔드에서 얼굴 감지 및 인식을 구현하는 것은 백엔드 얼굴 인식에 비해 장점과 단점이 있습니다. 장점에는 네트워크 상호 작용 및 실시간 인식이 줄어 사용자 대기 시간이 크게 단축되고 사용자 경험이 향상된다는 단점이 있습니다. 모델 크기에 따라 제한되고 정확도도 제한됩니다. js를 사용하여 웹에서 얼굴 인식을 구현하는 방법은 무엇입니까? 웹에서 얼굴 인식을 구현하려면 JavaScript, HTML, CSS, WebRTC 등 관련 프로그래밍 언어 및 기술에 익숙해야 합니다. 동시에 관련 컴퓨터 비전 및 인공지능 기술도 마스터해야 합니다. 웹 측면의 디자인으로 인해 주목할 가치가 있습니다.

Elden's Ring을 스위치로 플레이할 수 있나요? Elden's Ring을 스위치로 플레이할 수 있나요? Mar 11, 2024 am 11:31 AM

링 오브 엘든(Ring of Elden)은 스위치에서 플레이할 수 있나요? 매우 매력적인 액션 RPG 게임이기 때문에 많은 친구들이 스위치 플랫폼에서 플레이할 수 있는지 여부를 알지 못할 수도 있습니다. Ring of Elden을 스위치로 재생할 수 있나요? 답변: 스위치로 재생할 수 없습니다. 많은 기대를 모았던 Soul 시리즈의 롤플레잉 액션 게임이 공식 출시되었습니다. 플레이어는 PC, ps4/5, Xbox 시리즈 eX|S/XboxOne에서 구매하여 즉시 체험할 수 있습니다. 스위치를 소유한 많은 친구들은 여전히 ​​NS에서 이 게임을 즐기고 싶어할 수 있지만, 불행히도 이 게임의 스위치 버전은 없습니다. 공식 웹사이트 구성 요구 사항에 따르면 게임 구성이 상대적으로 높고 sw

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 Jan 05, 2024 pm 06:08 PM

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

Switch2는 스위치 카트리지와 호환됩니까? Switch2는 스위치 카트리지와 호환됩니까? Jan 28, 2024 am 09:06 AM

Switch2는 Nintendo가 Gamescom 2023에서 발표한 새로운 모델입니다. 일부 플레이어는 새 모델과 이전 버전의 카트리지 간에 호환성 문제가 있을지 걱정하고 있습니다. 스위치2는 스위치 카세트와 호환됩니까? 답변: 스위치2는 스위치 카세트와 호환되지 않습니다. Switch 2 카트리지 소개 Nintendo의 생산 체인 회사의 정보에 따르면 Switch 2는 64GB 카트리지를 사용할 수 있습니다. 더 나은 성능을 제공하고 더 많은 3A 게임 걸작을 지원하기 때문에 더 큰 카트리지 용량이 필요합니다. 많은 게임 작품을 게임 카트리지에 넣기 전에 거세하고 압축해야 하기 때문입니다. 게다가 스위치 카트리지는 게임 콘텐츠를 복사할 가능성이 높으므로 새 카트리지로 교체하세요.

js와 vue의 관계 js와 vue의 관계 Mar 11, 2024 pm 05:21 PM

js와 vue의 관계: 1. 웹 개발의 초석인 JS 2. 프론트엔드 프레임워크로서의 Vue.js의 등장 3. JS와 Vue의 상호 보완적인 관계 4. JS와 Vue의 실제 적용 Vue.

JavaScript에서 HTTP 상태 코드를 쉽게 얻는 방법 JavaScript에서 HTTP 상태 코드를 쉽게 얻는 방법 Jan 05, 2024 pm 01:37 PM

JavaScript에서 HTTP 상태 코드를 얻는 방법 소개: 프런트 엔드 개발에서 우리는 종종 백엔드 인터페이스와의 상호 작용을 처리해야 하며 HTTP 상태 코드는 매우 중요한 부분입니다. HTTP 상태 코드를 이해하고 얻는 것은 인터페이스에서 반환된 데이터를 더 잘 처리하는 데 도움이 됩니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTTP 상태 코드란 무엇입니까? HTTP 상태 코드는 브라우저가 서버에 요청을 시작할 때 서비스가

JS의 AI 시대가 왔습니다! JS의 AI 시대가 왔습니다! Apr 08, 2024 am 09:10 AM

JS-Torch 소개 JS-Torch는 구문이 PyTorch와 매우 유사한 딥 러닝 JavaScript 라이브러리입니다. 여기에는 완전한 기능을 갖춘 텐서 객체(추적된 그라디언트와 함께 사용 가능), 딥 러닝 레이어 및 기능, 자동 미분 엔진이 포함되어 있습니다. JS-Torch는 JavaScript의 딥러닝 연구에 적합하며 딥러닝 개발을 가속화할 수 있는 다양한 편리한 도구와 기능을 제공합니다. Image PyTorch는 Meta 연구팀이 개발하고 유지 관리하는 오픈 소스 딥 러닝 프레임워크입니다. 신경망 모델을 구축하고 훈련하기 위한 풍부한 도구와 라이브러리 세트를 제공합니다. PyTorch는 간단하고 유연하며 사용하기 쉽게 설계되었으며 동적 계산 그래프 기능을 통해

현재 페이지를 새로 고치는 js 메소드 현재 페이지를 새로 고치는 js 메소드 Jan 24, 2024 pm 03:58 PM

현재 페이지를 새로 고치는 js 메소드: 1. location.reload(); 2. location.href; 4. window.location. 자세한 소개: 1. location.reload(), 현재 페이지를 다시 로드하려면 location.reload() 메소드를 사용하십시오. 2. location.href, location.href 속성 등을 설정하여 현재 페이지를 새로 고칠 수 있습니다.

See all articles