>웹 프론트엔드 >JS 튜토리얼 >Javascript 표현식_javascript 기술에서 연속 && 및 || 할당의 차이점

Javascript 표현식_javascript 기술에서 연속 && 및 || 할당의 차이점

WBOY
WBOY원래의
2016-05-16 18:18:211252검색

코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

function write( msg){
for(var i = 0; i < 인수.길이; i ){
document.write(arguments[i] '
')
}
}
/ /'&&'
test1 = 1 && 2 && 3 && 4
test2 = '0' && 2 && 3 && 4
test3 = 1 && 2 && 0 &&; 4;
test4 = 2 && 'i' && 'love' && 3 && 'you'
test5 = 'i' && 'hate' && 1 && 0 && 'you'; && false && 'ihateyou' && '2';
test7 = 2 && true && 'ihatehateyou' && '23'
test8 = 4 && true && 'undefine' && 'true' && '1'; 🎜>test9 = 4 && true && 정의되지 않음 && 'true' && '1'
test10 = 4 && true && 'null' && 'true' && '1'
test11 = 4 && true && null && 'true' && '1 ';
write(test1, test2, test3, test4, test5, test6, test7, test8, test9, test10, test11); ------ ------')
//'|| '
_test1 = 1 || 3 || 4
_test3 = 0 || ;
_test4 = 2 || '나는' || '당신'
_test5 = 1 || 🎜>_test6 = false || 'ihateyou' || '2';
_test7 = false || 'ihateyou' || '정의되지 않음' || '1';
_test9 = 0 || 0|| 'true' || '1'; ' || '참' || '1';
_test11 = 0 || 0 || '참' ||
write(_test1, _test4, _test5, _test6, _test7, _test8, _test9, _test10, _test11);


출력을 보면 다음을 이해할 수 있습니다.

'&&'의 출력은 다음과 같습니다.




코드 복사


코드는 다음과 같습니다.
4 4 0 you 0
false
23
1
undefine
1
null


각 행의 번호는 위의 각 테스트에 해당합니다.

'||'의 출력 결과는 다음과 같습니다.




코드 복사


코드는 다음과 같습니다. :
1 2 0 2 증오
너를 싫어
true
정의되지 않음
true
null
true


잘 비교해 보면 더 명확해진다:

여러 개의 연속된 && 표현식에 0, false, 정의되지 않음, null이 없으면 마지막 " 하위 표현식", 그렇지 않으면 표현식의 0, false, 정의되지 않음 및 null이 반환됩니다.

여러 개의 연속된 || 표현식은 첫 번째 "하위 표현식"의 값을 사용합니다. 0, false, 정의되지 않음, null 중 하나인 경우 다음 "하위 표현식"의 값을 사용합니다. 등등, 0이 아닌, false, 정의되지 않은, null이 아닌 "하위 표현식"이 발견되어 전체 표현식의 값으로 사용됩니다.
보충:

위는 상황을 고려하지 않은 것 같은데, 즉 ''의 하위표현이 있다면 어떻게 해야 할까요? 실제로 && 및 || 작동 방식을 설명하기 위해 다른 표현 방법을 사용할 수 있습니다.

For (...) && (...) && (...) ...

각 하위 표현식을 왼쪽에서 오른쪽으로 탐색하고 각 하위 표현식을 부울로 변환합니다. 부울(하위 표현식)이 false인 경우 전체 표현식의 값은 이 하위 표현식의 값(0 또는 false 또는 정의되지 않음 또는 '')입니다. ), 다음 하위 표현식은 더 이상 평가되지 않습니다. 모든 부울(하위 표현식)이 true인 경우 전체 표현식의 값은 마지막 하위 표현식의 값입니다.

For (...) || (...) || (...) ...

각 하위 표현식을 왼쪽에서 오른쪽으로 탐색하고 각 하위 표현식을 변환합니다. 표현식은 부울로 강제 적용됩니다. 부울(하위 표현식)이 true이면 전체 표현식의 값은 이 하위 표현식의 값이고, 부울(하위 표현식) 표현식)이 false이면 다음 하위 표현식은 더 이상 "무시"되지 않습니다. 그런 다음 부울(하위 표현식)이 참이 될 때까지 다음 하위 표현식의 부울 조건을 결정합니다. 모든 부울(하위 표현식)이 false인 경우 마지막 하위 표현식 값(0 또는 false 또는 정의되지 않음 또는 null 또는 '')을 반환합니다.

참고:

Boolean(false) != Boolean('false'), 전자는 false이고 후자는 true입니다.

Boolean(undefine) != Boolean('undefine'), 전자는 false이고 후자는 true입니다.

Boolean(null) != Boolean('null'), 전자는 false이고 후자는 true입니다.

Boolean(0) != Boolean('0'), 전자는 false이고 후자는 true입니다.

부울('') == false
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.