1. || (논리적 또는),
말 그대로, 거짓은 거짓 전후에 모두 거짓으로 반환됩니다. 그렇지 않으면 참이 반환됩니다.
경고 (true || false); // truealert (false || true); // truealert (true || true); // truealert (false || false); // 거짓
이 바보는 그것을 알고 있습니다 ~~
그러나 더 깊은 의미에서 또 다른 세상이 있습니다. 다음 코드를 사용해보십시오
경고 (0 || 1); // 1
분명히, 우리는 첫 번째 0이 false를 의미하고 두 번째 1은 true를 의미한다는 것을 알고 있으며, 위의 결과는 true이고 결과는 1입니다. 다음 코드를보십시오.
경고 (2 || 1); // 2
우리는 처음 2가 사실이고 마지막 1은 사실이라는 것을 알고 있습니다. 그렇다면 반환 결과는 무엇입니까? 테스트 결과는 2입니다. 계속 읽기 :
경고 ( 'a'|| 1); // 'a'
마찬가지로, 첫 번째 'a'는 사실이고 다음 1은 사실입니다. 테스트 결과는 'a'이며 다음은 다음과 같습니다
경고 ( ''|| 1); // 1
위에서, 우리는 앞면이 거짓이고, 뒤쪽 1은 참이고, 반환 결과는 1입니다. 다음을보십시오.
경고 ( 'a'|| 0); // 'a'
첫 번째 'a'는 참이고 다음 0은 거짓이고 반환 결과는 'a'이며 다음을 계속하십시오.
경고 ( ''|| 0); // 0
이전 "은 거짓이고 다음 0도 거짓이고 반환 결과는 0입니다.
경고 (0 || ''); // ''
첫 번째 0은 false이고 다음은 "거짓이고 반환 결과는"입니다. "
이것은 의미합니다
1. "||"만큼 길다. "||"여부에 관계없이 "||"앞에서 거짓입니다. "||"의 뒷면에서 "||"의 값은 "||"의 뒷면에 참 또는 거짓입니다. 반환됩니다.
2. "||"만큼 "||"에 관계없이 사실입니다. true 또는 false, 이전의 값 "||" 반환됩니다.
나는 이것을 단락 원리라고 부릅니다. 첫 번째의 결과를 알고 있다면 나중에 출력을 알 수 있습니다. 첫 번째 것이 참이면 첫 번째 값을 가져 가면 첫 번째 값이 거짓이면 두 번째 값을 가져갑니다.
JS가 기억 해야하는 6 공 : 기억하십시오 : JS 논리 작업에서 0, 0, "", null, false, undefined 및 nan은 거짓으로 판단되고 다른 것들은 사실입니다 (생략이없고 확인하십시오). 당신은 이것을 기억해야합니다. 그렇지 않으면 응용 프로그램에 문제가 있습니다 || 그리고 &&.
그건 그렇고 : 나는 종종 (attr) if (attr)을 직접 쓰지 않는 이유를 묻습니다.
실제로 이것은 더 엄격한 글쓰기 방법입니다.
유형 5와 타입의 차이를 테스트하십시오 !! 5. 의 기능 !! 다른 유형의 변수를 부울 유형으로 변환하는 것입니다.
2. && (물류 및)
말 그대로, True는 전후가 모두 참을 때만 반환됩니다. 그렇지 않으면 거짓이 반환됩니다.
경고 (true && false); // falSealert (true && true); // truealert (false && false); // falSealert (false && true); // 거짓
그런 다음 위의 경험을 바탕으로 "&&"숫자가 부울 유형이 아닌 상황을 살펴 보겠습니다.
경고 ( ''&& 1); // ''
매듭은 반환 ","&& "이전"은 거짓이고, 1은 그 후에도 사실입니다.
경고 ( ''&& 0); // ''
매듭은 반환 ","&& "이전"은 거짓이고 0도 거짓입니다.
경고 ( 'a'&& 1); // 1
매듭은 1, "&&"a가 사실이며, 다음은 1입니다. 1도 마찬가지입니다.
경고 ( 'a'&& 0); // 0
매듭은 0, "&&"a가 true이고 다음은 0입니다.
경고 ( 'a'&& ''); // ''
매듭은 반환 ","&& "전에"A "A가 참이되고"After "는 False입니다.
경고 (0 && 'a'); // 0
매듭은 0, "&&"이전 "0이 거짓이고 'a'는 사실입니다.
경고 (0 && ''); // 0
매듭은 0, "&&"이전 "0이 거짓이고, 이후"도 거짓입니다.
단락 원리
1. "&&"가 true인지 거짓인지 여부에 관계없이 "&&"가 거짓 인 한, "&&"의 값은 반환됩니다.
2. "&&"가 true인지 거짓인지 여부에 관계없이 "&&"가 true 인 한, 결과는 "&&"이후에 값을 반환합니다.
3. 개발 응용 프로그램
다음 세 코드는 동일합니다.
a = a || "defaultValue"; if (! a) {a = "defaultValue"; } if (a == null || a == ""|| a == undefined) {a = "defaultValue"; }어느 것을 사용하고 싶습니까?
2. var yahoo = yahoo ||와 같은 {}; 매우 널리 사용됩니다. 초기 가치를 우아하게 만드는 방법이 아닙니까? 경우보다. . . . 그렇지 않으면 ... 훨씬 낫고,보다 낫습니까? : 훨씬 낫습니다.
3. Callback && Callback ()
콜백에서 이것은 종종 이런 식으로 작성되며 더 엄격합니다. 먼저 콜백이 존재하는지 확인하십시오. 존재하면 실행하십시오. 이 방법을 작성하는 목적은 오류가보고되는 것을 방지하는 것입니다.
콜백 ()을 직접 작성하는 경우; 콜백이 존재하지 않으면 코드가 오류를보고합니다.
4. 포괄적 인 예
요구 사항은 그림에 표시됩니다.
여기에 그림 설명을 작성하십시오
성장률이 다음과 같이 지정된다고 가정합니다.
1 화살표가 성장률이 5 일 때 화살표가 표시됩니다.
성장률이 10 일 때 2 개의 화살표가 표시됩니다.
성장률이 12 일 때 3 개의 화살표가 표시됩니다.
성장률이 15 일 때 4 개의 화살표가 표시됩니다.
다른 모든 사람들은 0 화살표를 표시합니다.
코드로 구현하는 방법은 무엇입니까?
조금만 : 다른 경우 :
var add_level = 0; if (add_step == 5) {add_level = 1; } else if (add_step == 10) {add_level = 2; } else if (add_step == 12) {add_level = 3; } else if (add_step == 15) {add_level = 4; } else {add_level = 0; }약간 더 나은 스위치 :
var add_level = 0; 스위치 (add_step) {case 5 : add_level = 1; 부서지다; 사례 10 : add_level = 2; 부서지다; 사례 12 : add_level = 3; 부서지다; 사례 15 : add_level = 4; 부서지다; 기본값 : add_level = 0; 부서지다;}요구 사항이 변경된 경우 :
성장률은> 12 및 4 개의 화살표가 표시됩니다.
성장률이> 10 일 때 3 개의 화살표가 표시됩니다.
성장 속도는> 5 및 2 개의 화살표가 표시됩니다.
성장 속도> 0은 1 화살표를 보여줍니다.
성장 속도는 <= 0이고 0 화살표가 표시됩니다.
그런 다음 스위치로 구현하는 것이 매우 번거 롭습니다.
그래서 한 줄로 구현할 생각을 한 적이 있습니까?
좋아, JS의 강력한 표현력을 살펴 보자.
var add_level = (add_step == 5 && 1) || (add_step == 10 && 2) || (add_step == 12 && 3) || (add_step == 15 && 4) || 0;
더 강력하고 더 나은 :
var add_level = { '5': 1, '10 ': 2, '12': 3, '15 ': 4} [add_step] || 0;두 번째 요구 사항 :
var add_level = (add_step> 12 && 4) || (add_step> 10 && 3) || (add_step> 5 && 2) || (add_step> 0 && 1) || 0;
위는 "&&"및 "||"에 대한 포괄적 인 분석입니다. JavaScript의 운영자가 편집자가 소개했습니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!