나는 jsfiddle.net에서 놀고 있었고 이것이 왜 사실인지 궁금합니다.
if(0 < 5 < 3) {
alert("True");
}
이것도 마찬가지입니다 :
if(0 < 5 < 2) {
alert("True");
}
그러나 이것은하지 않습니다 :
if(0 < 5 < 1) {
alert("True");
}
이 특징은 유용합니까?
나는 jsfiddle.net에서 놀고 있었고 이것이 왜 사실인지 궁금합니다.
if(0 < 5 < 3) {
alert("True");
}
이것도 마찬가지입니다 :
if(0 < 5 < 2) {
alert("True");
}
그러나 이것은하지 않습니다 :
if(0 < 5 < 1) {
alert("True");
}
이 특징은 유용합니까?
답변:
오퍼레이션 순서는 (0 < 5 < 3)
Javascript에서 ((0 < 5) < 3)
생성되는 것으로 해석되며 (true < 3)
true는 1로 계산되어 true를 리턴합니다.
이것은 또한 이유 (0 < 5 < 1)
를 반환 거짓 (0 < 5)
으로 해석됩니다 true를 반환 1
결과 (1 < 1)
.
if(0 < 5 < 1) == false
. 감사합니다 :)
((0 < 5) && (5 < 3))
입니다.
내 생각 때문이다 0 < 5
사실, 그리고 true < 3
캐스팅을 얻을 수 1 < 3
있는 사실이다.
이 기발한 것이 유용한 지 여부에 대한 귀하의 질문에 관해서는 : 유용한 코드가 유용 할 수있는 경우가 있다고 생각하지만 (응축 된 코드가 당신이 따르는 것이라면) 코드에 의존하면 코드의 이해도가 심각하게 줄어들 것입니다.
더 큰 표현식의 일부로 사후 / 사전 증가 / 감소를 사용하는 것과 비슷합니다. 이 코드의 결과를 한눈에 파악할 수 있습니까?
int x = 5;
int result = ++x + x++ + --x;
참고 :이 코드를 사용하면 언어 및 컴파일러에 따라 때로는 다른 결과를 얻을 수도 있습니다.
자신과 코드를 읽을 다음 사람 을 위해 인생을 편하게 만드는 것이 좋습니다 . 부울의 암시 적 변환과 같은 부작용에 의존하기보다는 실제로 원하는 것을 명확하게 작성하십시오.
result
18 살 입니까?
질문의 두 번째 부분에 대한 대답은 "이 기발한 것이 유용합니까?" 이전 답변에서 언급했듯이 true가 실제로 1로 캐스팅되었지만 프로그래머가 일반적으로 1과 true (및 0과 false)가 아닌 언어 (자바 스크립트)의 기발한 경우 같은 것.
그러나 1이 참이고 0이 거짓 인 정신 모델을 가지고 있다면, 그것은 매우 유용하고 강력하며 직접적인 모든 종류의 멋진 부울 기술로 이어집니다. 예를 들어, A> 100의 결과로 카운터를 직접 증가시킬 수 있습니다. A가 100보다 크면 카운터가 증가합니다.이 기술은 Java에서는 엉뚱한 속임수 또는 배열 또는 기능적 언어로 볼 수 있습니다. 관용적 일 수 있습니다.
배열 언어 APL의 전형적인 예는 배열에서 100보다 큰 항목 수를 계산하는 것입니다.
+/A>100
여기서 A가 5 개의 항목 배열 인 경우 107 22256110 3
A>100
5 개의 항목 부울 배열을 생성합니다.
10010
이 부울 결과를 합하면 :
+/1 0 1 1 0
최종 답변을 산출합니다.
삼
이 질문 은 특히이 기술이 매우 유용한 위치에 대한 완벽한 예입니다. 특히 m 개의 부울 값 중 n 개가 참인지 여부를 판별하기 위해 문제가 일반화 된 경우.
1 <3 일 때 1을 반환하는 0 <5를 평가하고 있습니까?
C # "이 연산자 '<'은 (는) 'bool'및 'int'유형의 피연산자에 적용 할 수 없습니다."
0 < 5 < 3
==> ( ( 0 < 5 ) < 3 )
==> true < 3
==> 1 < 3
==> true
수학 연산자를 조작 할 때 부울 피연산자는 숫자를 반환합니다. 이것을 확인하기 위해 우리는
true + 1 which gives you 2.
따라서 0 < 5
math 연산자 (<)로 작동하는 반환 된 부울 (true)은 숫자를 반환합니다. 그래서 그것은 1 <3으로 끓입니다.true
Number ()로 결과를 표현해보십시오
if(Number(0) < Number(5) < Number(3)) {
alert("True");
}
또는 이것을 시도하십시오 :
if(Number(0) < Number(5) && Number(5) < Number(3)) {
alert("True");
}
나는 그것을 얻었 기 때문에 이것을 봤고 문자열 형식으로 인쇄 하는 함수 에서이 값을 얻었 기 때문에 (3 >= 20) //returning true
javascript가 3
부울 로 확인하려고 한 것 같습니다 .elm.getAttribute();
console.log();