if($summary = get_post_summary()) { return $summary; }내가 언급하는 것은 조건 내부의 과제입니다. 교활하게도, 그것은 훨씬 덜 일반적이지만 JavaScript에서도 수행 할 수 있습니다.
if(summary = document.getElementById("post-summary")) { return summary.innerHTML; }언뜻보기에 당신은 오타라고 생각한 것에 대해 용서받을 것입니다! 실제로, 일부 디버거는 경고로 그 사실을 표시하여 평등에 대한 테스트를 의미하는지 묻고 (==) 할당 (=)으로 안개를 썼습니다. 그러나 실수가 아닙니다. 이해하는 열쇠는 두 가지를 이해하는 것입니다 : 첫째, 할당은 값 (할당 한 값)을 반환합니다. 두 번째로 가장 중요한 것은 반환 값이 true 또는 false로 평가하고 궁극적으로 조건이 통과하는지 여부를 결정합니다. 이제 Dom 평가 및 트래버스의 세계 에서이 기술은 Dom 노드가 존재하거나 NULL이기 때문에 안전하고 예측 가능한 기술입니다. . 따라서 위의 코드 예제에서 "#사후"요소가 존재하는 경우 조건이 true로 평가하거나 그렇지 않은 경우 False로 평가됩니다. 마찬가지로, 동일한 트릭을 사용하여 알려지지 않은 계층 구조를 반복하여 while ()를 사용하는 연속적인 부모를 통해 가로 질러 갈 수 있습니다. 이 예제는 이벤트 대상과 #document 사이에 모든 노드 이름의 배열을 작성합니다.
var names = [], node = e ? e.target : event.srcElement; do { names.push(node.nodeName); } while(node = node.parentNode)그러나 JavaScript의 다른 곳에서는 훨씬 덜 신뢰할 수있는 영역에서 자신을 찾을 수 있습니다. 왜냐하면 얼마나 많은 값이 얼마나 사실이거나 얼마나 잘못되었다는 것이 직관적이지 않기 때문입니다. 예를 들어 양과 음수는 모두 0과 nan 을 제외하고는 True로 평가됩니다. 그리고 기괴하게, 대상 부울 생성자 항상 로 만들어진 는 새로운 부울 (false)으로 만들어 졌더라도 True로 평가됩니다! 그러니 경고하십시오! 이와 같은 구문은 희미한 마음이 아닙니다. 유형 변환과 임의의 값의 주조에 대한 과도한 관계와 함께 무심한 방식으로 사용되어야합니다. 그러나 적절한 상황에서 잘 사용되면 많은 조건을 단순화하여 더 빠르고 더 얇은 코드를 생성 할 수 있습니다.
썸네일 크레디트 : sbwoodside
조건 내부의 할당은 'if'문과 같은 조건부 명령문 내에서 변수에 값을 할당하는 관행을 나타냅니다. 이것은 JavaScript, C 및 Python을 포함한 많은 프로그래밍 언어에서 일반적인 관행입니다. 할당과 조건 검사는 한 줄로 수행 할 수 있으므로보다 간결한 코드를 허용합니다. 그러나 과제 작업이 비교 작업으로 오인 될 수 있으므로 신중하게 사용되지 않으면 혼란과 잠재적 버그로 이어질 수 있습니다.
조건부 표현에서 할당이 혼란과 잠재적 버그로 이어질 수 있습니다. 할당 연산자 (=)가 평등 연산자 (==)로 쉽게 착각 할 수 있기 때문입니다. 결과적으로, 비교해야 할 조건은 실수로 과제가되어 코드에서 예상치 못한 행동으로 이어질 수 있습니다. 또한 조건의 과제는 특히 경험이 부족한 프로그래머의 경우 코드를 읽고 이해하기가 더 어려워 질 수 있습니다.
는 할당과 조건 검사를 두 개의 별도의 코드 줄로 분리 할 수 있습니다. 예를 들어, if (x = getValue ())을 작성하는 대신 x = getValue ()를 쓸 수 있습니다. if (x). 이로 인해 코드가 더 명확 해지고 혼란 또는 버그의 위험이 줄어 듭니다.
일반적으로 낙담하지만 조건의 과제가 유익 할 수있는 상황이 있습니다. 예를 들어, 각 반복에서 값을 업데이트하고 확인 해야하는 루프에서 조건의 할당을 통해 코드를 더 간결하게 만들 수 있습니다. 그러나 이것은 조심스럽게 수행해야하며 혼란을 피하기 위해 코드를 명확하게 설명해야합니다.
조건에서 TypeScript가 할당을 처리하는 방법? 그러나 TypeScript는 조건에서 과제로 인한 잠재적 오류를 포착하는 데 도움이 될 수있는보다 엄격한 유형 검사를 가지고 있습니다. 예를 들어, 조건 내부의 숫자로 여겨지는 변수에 문자열을 할당하려고하면 TypeScript는 컴파일 타임 오류를 제공합니다.
조건에서 과제로 인한 과제로 인해 발생하는 문제가 발생할 수 있습니까? 한 가지 방법은 올바른 연산자를 사용하는지 확인하기 위해 모든 조건 진술을 신중하게 확인하는 것입니다. Linter 또는 정적 코드 분석 도구를 사용하면 이러한 문제를 해결하는 데 도움이 될 수 있습니다.
조건의 과제에 대한 대안이 있습니까?
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3