"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 조건부 진술서의 할당 작업

조건부 진술서의 할당 작업

2025-05-02에 게시되었습니다
검색:927

조건부 진술서의 할당 작업

PHP 에서 매우 일반적입니다. 다음과 같이 작성된 코드를 보려면 :
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

조건 내에서 할당에 대한 자주 묻는 질문 (FAQS)

프로그래밍 조건 내부의 할당이란 무엇입니까?

조건 내부의 할당은 'if'문과 같은 조건부 명령문 내에서 변수에 값을 할당하는 관행을 나타냅니다. 이것은 JavaScript, C 및 Python을 포함한 많은 프로그래밍 언어에서 일반적인 관행입니다. 할당과 조건 검사는 한 줄로 수행 할 수 있으므로보다 간결한 코드를 허용합니다. 그러나 과제 작업이 비교 작업으로 오인 될 수 있으므로 신중하게 사용되지 않으면 혼란과 잠재적 버그로 이어질 수 있습니다.

조건부 표현에서 과제를 수행하는 것이 나쁜 관행으로 간주되는 이유

조건부 표현에서 할당이 혼란과 잠재적 버그로 이어질 수 있습니다. 할당 연산자 (=)가 평등 연산자 (==)로 쉽게 착각 할 수 있기 때문입니다. 결과적으로, 비교해야 할 조건은 실수로 과제가되어 코드에서 예상치 못한 행동으로 이어질 수 있습니다. 또한 조건의 과제는 특히 경험이 부족한 프로그래머의 경우 코드를 읽고 이해하기가 더 어려워 질 수 있습니다.

조건부 표현에서 할당을 피할 수있는 방법

는 할당과 조건 검사를 두 개의 별도의 코드 줄로 분리 할 수 ​​있습니다. 예를 들어, if (x = getValue ())을 작성하는 대신 x = getValue ()를 쓸 수 있습니다. if (x). 이로 인해 코드가 더 명확 해지고 혼란 또는 버그의 위험이 줄어 듭니다.

조건의 과제가 허용되거나 심지어 유익한 상황이 있습니까?

일반적으로 낙담하지만 조건의 과제가 유익 할 수있는 상황이 있습니다. 예를 들어, 각 반복에서 값을 업데이트하고 확인 해야하는 루프에서 조건의 할당을 통해 코드를 더 간결하게 만들 수 있습니다. 그러나 이것은 조심스럽게 수행해야하며 혼란을 피하기 위해 코드를 명확하게 설명해야합니다.

할당 연산자와 평등 연산자의 차이점은 무엇입니까? 예를 들어, x = 5는 값 5를 변수 x에 할당합니다. 반면, 평등 연산자 (==)는 두 값을 비교하는 데 사용됩니다. 예를 들어, (x == 5)가 X의 값이 5와 같은지 확인하면

조건에서 TypeScript가 할당을 처리하는 방법? 그러나 TypeScript는 조건에서 과제로 인한 잠재적 오류를 포착하는 데 도움이 될 수있는보다 엄격한 유형 검사를 가지고 있습니다. 예를 들어, 조건 내부의 숫자로 여겨지는 변수에 문자열을 할당하려고하면 TypeScript는 컴파일 타임 오류를 제공합니다.

조건에서 할당으로 인한 일반적인 버그는 무엇입니까? 예를 들어, (x = 5)가 X가 5와 같은지 확인하는 대신 5에서 x를 할당하기 때문에 (x = 5)가 항상 사실이면 코드에서 예상치 못한 동작으로 이어질 수 있습니다.

조건에서 과제로 인한 과제로 인해 발생하는 문제가 발생할 수 있습니까? 한 가지 방법은 올바른 연산자를 사용하는지 확인하기 위해 모든 조건 진술을 신중하게 확인하는 것입니다. Linter 또는 정적 코드 분석 도구를 사용하면 이러한 문제를 해결하는 데 도움이 될 수 있습니다.

조건의 할당은 모든 프로그래밍 언어에서 사용할 수 있습니까? 예를 들어, Python은 조건에서 할당을 허용하지 않으며 그렇게하려고하면 구문 오류가 발생합니다. 사용중인 프로그래밍 언어의 구문 규칙을 항상 확인하십시오.

조건의 과제에 대한 대안이 있습니까?

예, 조건의 과제에 대한 대안이 있습니다. 일반적인 대안 중 하나는 임시 변수를 사용하여 할당 및 확인 해야하는 값을 보유하는 것입니다. 이로 인해 코드를 더 명확하고 이해하기 쉽게 만들 수 있습니다. 또 다른 대안은 값을 반환 한 다음 조건에서 해당 값을 확인하는 함수를 사용하는 것입니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3