PHP
if($summary = get_post_summary()) { return $summary; }언뜻보기에 당신은 오타라고 생각한 것에 대해 용서받을 것입니다! 실제로, 일부 디버거는 경고로 그 사실을 표시하여 평등에 대한 테스트를 의미하는지 묻고 (==) 할당 (=)으로 안개를 썼습니다. 그러나 실수가 아닙니다. 그것을 이해하는 열쇠는
if(summary = document.getElementById("post-summary")) { return summary.innerHTML; }두 가지를 이해하는 것입니다. 첫째, 할당은 값 (할당 한 값)을 반환합니다. 두 번째로 가장 중요한 것은 반환 값이 true 또는 false로 평가하고 궁극적으로 조건이 통과하는지 여부를 결정합니다. 이제 dom 평가 및 트래버스의 세계에서,이 기술은 Dom 노드가 존재하거나 null이기 때문에 안전하고 예측 가능한 기술입니다. . 따라서 위의 코드 예제에서 "#사후"요소가 존재하는 경우 조건이 true로 평가하거나 그렇지 않은 경우 False로 평가됩니다. 마찬가지로, 동일한 트릭을 사용하여 알려지지 않은 계층 구조를 반복하여 while ()를 사용하는 연속적인 부모를 통해 가로 질러 갈 수 있습니다. 이 예제는 이벤트 대상과 #document 사이에 모든 노드 이름의 배열을 작성합니다. 그러나 JavaScript의 다른 곳에서는 훨씬 덜 신뢰할 수있는 영역에서 자신을 찾을 수 있습니다. 왜냐하면 얼마나 많은 값이 얼마나 사실이든 얼마나 거짓으로 판명되는지 직관적이지 않기 때문입니다. 예를 들어 양과 음수는 모두 0과 nan 을 제외하고는 True로 평가됩니다. 그리고 기괴하게, 대상 부울 생성자 항상
var names = [], node = e ? e.target : event.srcElement; do { names.push(node.nodeName); } while(node = node.parentNode)로 만들어진 새로운 부울 (false)으로 만들어 졌더라도 True로 평가됩니다! 그러니 경고하십시오! 이와 같은 구문은 희미한 마음이 아닙니다. 유형 변환과 임의의 값의 주조에 대한 과도한 관계와 함께 무심한 방식으로 사용되어야합니다. 그러나 적절한 상황에서 잘 사용되면 많은 조건을 단순화하여 더 빠르고 더 얇은 코드를 생성 할 수 있습니다. 썸네일 크레디트 : SBWoodSide
조건부 표현식에서 과제를 피할 수있는 방법
조건 표현식의 할당을 피하려면 할당과 조건을 두 개의 별도 코드 줄로 분리 할 수 있습니다. 예를 들어, if (x = getValue ())을 작성하는 대신 x = getValue ()를 쓸 수 있습니다. if (x). 이것은 코드를 더 명확하게하고 혼란이나 버그의 위험을 줄입니다.일반적으로 낙담하지만 조건의 과제가 유익 할 수있는 상황이 있습니다. 예를 들어, 각 반복에서 값을 업데이트하고 확인 해야하는 루프에서 조건의 할당을 통해 코드를 더 간결하게 만들 수 있습니다. 그러나 이것은 조심스럽게 수행해야하며 혼란을 피하기 위해 코드를 명확하게 설명해야합니다.
할당 연산자와 평등 연산자의 차이점은 무엇입니까?조건에서 과제로 인한 일반적인 버그는 조건에서 할당으로 인한 일반적인 버그가 비교가 의도적 일 때의 의도하지 않은 할당입니다. 예를 들어, (x = 5)가 X가 5와 같은지 확인하는 대신 5에서 x를 할당하기 때문에 (x = 5)가 항상 사실 일 것입니다. 코드에서 예상치 못한 동작으로 이어질 수 있습니다. 조건에서 할당으로 인한 문제로 인한 문제를 디버깅 할 수 있습니까?
조건에서 발생하는 문제가 발생할 수 있으므로 코드에 오류가 발생하지 않을 수 있습니다. 한 가지 방법은 올바른 연산자를 사용하는지 확인하기 위해 모든 조건 진술을 신중하게 확인하는 것입니다. 라이터 또는 정적 코드 분석 도구를 사용하면 이러한 문제를 해결하는 데 도움이 될 수 있습니다.
예, 조건의 과제에 대한 대안이 있습니다. 일반적인 대안 중 하나는 임시 변수를 사용하여 할당 및 확인 해야하는 값을 보유하는 것입니다. 이로 인해 코드를 더 명확하고 이해하기 쉽게 만들 수 있습니다. 또 다른 대안은 값을 반환 한 다음 조건에서 해당 값을 확인하는 함수를 사용하는 것입니다.
위 내용은 조건 내부의 할당의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!