>  기사  >  웹 프론트엔드  >  JScript의 '||' 및 '&&' 연산자의 특수 기능을 사용하여 코드 streamlining_javascript 기술 달성

JScript의 '||' 및 '&&' 연산자의 특수 기능을 사용하여 코드 streamlining_javascript 기술 달성

PHP中文网
PHP中文网원래의
2016-05-16 19:17:441017검색

JScript의 수많은 연산자 중에서 &&, ||, ! 세 가지 논리 연산자를 제공하는데, 아 고급 언어군요! . 논리 연산에 대한 우리의 일반적인 이해에 따르면 논리 연산의 결과는 참이거나 거짓이어야 합니다. 그러나 JScript의 논리 연산은 항상 true|false를 반환하는 ! 연산자만 있으며 || 및 && 연산이 더 재미있습니다.

JScript의 논리 연산에 대한 true|false 정의는 다음과 같습니다.

  • 모든 개체는 true로 간주됩니다.

  • 문자열은 비어 있는 경우("" 또는 '')에만 false로 간주됩니다.

  • null 및 정의되지 않음은 false로 간주됩니다.

  • 숫자는 0인 경우에만 거짓입니다.

그러나 논리 연산자 ||&&는 위의 정의 규칙을 따르지만 이들이 반환하는 값은 매우 흥미롭습니다.
&& 연산의 경우 위 규칙에 따라 표현식 if ('abc' && '123' && new Date() )는 실제 분기를 실행하지만 이 표현식이 다음과 같이 작성되면:

JScript의 '||' 및 '&&' 연산자의 특수 기능을 사용하여 코드 streamlining_javascript 기술 달성 var= 'abc' && ' 123' && new Date();

결과 값= Fri Jan 21 00:01:17 UTC 0800 2005. 원래는 왼쪽에서 오른쪽으로 확인했습니다. 마지막 표현식도 true이면 해당 표현식이 반환됩니다.

다음 표현식의 || 작업에도 동일하게 적용됩니다.

JScript의 '||' 및 '&&' 연산자의 특수 기능을 사용하여 코드 streamlining_javascript 기술 달성var value1 = 'abc' || '123' || null || false;
JScript의 '||' 및 '&&' 연산자의 특수 기능을 사용하여 코드 streamlining_javascript 기술 달성
var 값2 = null || ''||거짓 🎜>

결과 값1='abc', 값2='확인'. || 연산에는 "단락" 특성이 있기 때문입니다. 또한 왼쪽에서 오른쪽으로 테스트하지만 참값을 찾는 즉시 표현식을 반환합니다.
이러한 기능은 효율적인 코드 작성에 도움이 되지만 코드를 읽고 유지 관리하기가 쉽지 않다는 문제도 발생합니다.
NS나 moz 같은 브라우저가 없어서 표준 자바스크립트도 이런 식으로 지원이 되는지 궁금합니다. 편하신 경우 실행 후 결과를 알려주세요.

JScript에서 이러한 논리 연산은 모두 표현식이 "의미 있는"지 여부를 결정하는 데 사용됩니다.

예: 0, "", null, false, 정의되지 않음, NaN... 등. 의미 없음..

&&는 true 또는 false를 반환합니다.
a||b는 a가 의미 있으면 a를 반환하고, 그렇지 않으면 b를 반환합니다.

그래서 가끔은 그렇지 않습니다. 다음과 같은 코드를 작성하지 마세요:
var obj=QuerySomeObject();
if(obj==null)return null;
return obj.Property;

> return (QuerySomeObj()||{}).Property;
또한, null과 false의 비교에 주의하세요.
==와 비교할 때 ""와 false는 모두 동일합니다. >
하지만 null은 다릅니다. 예를 들어

if(!null)
{
alert(1)
}
if(null==false)
{
alert(2);
}
Firefox에서 테스트한 결과는 동일합니다!

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