JavaScript의 삼항 연산자 우선 순위 문제 해결
JavaScript의 삼항 연산자는 조건부 할당을 위한 강력한 도구이지만 우선 순위를 이해하는 것은 까다로울 수 있습니다. 이 기사는 삼항 연산자가 =.
문제 이해
다음 코드 조각을 고려하세요.
h.className += h.className ? ' error' : 'error'
얼핏 보면 이 코드는 삼항 조건에 따라 h.className의 현재 값을 'error' 또는 'error'와 연결하는 것처럼 보입니다. 그러나 이렇게 해석하면 오류가 발생할 수 있습니다.
올바른 해석
문제는 연산자의 우선순위에 있습니다. JavaScript에서는 연산자가 삼항 연산자보다 우선순위가 높습니다. 즉, 위의 표현식은 다음과 같이 평가됩니다.
h.className = h.className + (h.className ? ' error' : 'error')
해결 방법
삼항 연산자가 올바르게 적용되도록 하려면 코드를 다음과 같이 작성해야 합니다.
h.className = h.className + (h.className ? ' error' : 'error')
이렇게 하면 h.className과 연결하기 전에 삼항 연산자가 평가됩니다.
추가 고려 사항
다음 사항에 유의하는 것이 중요합니다. h.className = ' error' 도 유효하지만 업데이트된 코드만큼 정확하지는 않습니다. = 연산자는 h.className에만 적용되는 반면, 업데이트된 코드는 삼항 조건 결과를 h.className과 명시적으로 연결합니다.
결론
연산자 우선 순위를 이해하는 것이 중요합니다. 올바른 JavaScript 코드 작성. 삼항 연산자와 = 연산자에 대한 우선순위 규칙을 명확히 하여 이 문서에서는 JavaScript에서 조건부 할당을 사용할 때 직면하는 일반적인 문제에 대한 솔루션을 제공합니다.
위 내용은 왜 `${\'h.className = h.className 입니까? \' error\' : \'error\'}` JavaScript에서 예상대로 작동하지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!