Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript ID 검색기 만들기: if 문이 항상 실행되는 이유와 해결 방법

원인: if 조건식에서 대입 연산자(=)를 사용하고 있습니다

if 조건 안에 등호(=) 하나만 쓰면 JavaScript는 이를 비교가 아닌 대입(assignment)으로 해석합니다. 즉, 조건을 검사하는 대신 오른쪽 값을 왼쪽 변수에 할당하게 되며, 할당된 값이 참(truthy)으로 평가되는 한 if 블록은 매번 실행됩니다.

두 값이 같은지 비교하려면 동등 연산자(==) 또는 일치 연산자(===)를 사용해야 합니다. 두 연산자의 차이는 다음과 같습니다.

  • == (동등 연산자) : 비교하기 전에 양쪽 값의 자료형을 자동으로 변환한 뒤 비교합니다.
  • === (일치 연산자) : 자료형까지 포함해 엄격하게 비교합니다. 예상치 못한 형 변환으로 인한 버그를 막을 수 있어 실무에서 권장됩니다.

예제 코드

다음은 객체 배열에서 특정 ID를 검색하는 전체 예제입니다. 조건문에서 일치 연산자(===)를 사용한 부분에 주목하세요.

var details = [
    {
       id: 10001,
       name: "John"
    },
    {
       id: 10002,
       name: "Bob"
    },
    {
       id: 10003,
       name: "Carol"
    },
    {
       id: 10004,
       name: "David"
    }
]
var searchId = 10003;
for (var index = 0; index < details.length; index++) {
    if (details[index].id === searchId) {
       console.log(details[index].id + " found");
       break;
    }
}

프로그램 실행 방법

위 프로그램을 실행하려면 터미널에서 아래 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름이 demo322.js라고 가정합니다.

실행 결과

정상적으로 실행되면 다음과 같이 일치하는 ID가 출력됩니다.

PS C:\Users\Amit\javascript-code> node demo322.js
10003 found