if
JavaScript에서 인라인 문을 어떻게 사용 합니까? 인라인 else
문도 있습니까?
이 같은:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
if
JavaScript에서 인라인 문을 어떻게 사용 합니까? 인라인 else
문도 있습니까?
이 같은:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
답변:
반드시 jQuery가 필요하지는 않습니다. JavaScript만으로도 가능합니다.
var a = 2;
var b = 3;
var c = ((a < b) ? 'minor' : 'major');
c
변수 것 minor
값 인 경우 true
, 및 major
값이면 false
.
이것을 조건부 (삼항) 연산자라고합니다.
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
if (a < b) c = 'major';
if
명령문을 인라인으로 작성 하려면 코드 내부의 코드는 하나의 명령문이어야합니다.
if ( a < b ) // code to be executed without curly braces;
다음과 같이 삼항 연산자가 있습니다.
var c = (a < b) ? "a is less than b" : "a is not less than b";
0 < 1 : 5 : 120;
완벽한 유효한 진술입니다. 그러나 한 줄에 지불하지 않으면 약간 쓸모가 없습니다.
if
이러한 경우에 평범한 오래된 지루한 진술을 사용하면 코드를 읽고 이해하기가 훨씬 쉬워지고 나중에 변경 될 때 깨지지 않을 것입니다.
논리 연산자 만 사용하여 if / else를 근사화 할 수도 있습니다.
(a && b) || c
위의 내용은 다음과 같습니다.
a ? b : c
그리고 물론 대략 다음과 같습니다.
if ( a ) { b } else { c }
나는이 접근법에 하나의 차이점이 있기 때문에 대략 말한다. 값이 b
참으로 평가 된다는 것을 알아야한다는 것입니다. 그렇지 않으면 항상 얻을 것 c
입니다. 근본적으로 당신은 나타날 if () { here }
부분이 이제 당신이 놓은 조건 의 일부라는 것을 알아야합니다 if ( here ) { }
.
논리식을 형성 한 원래 값 중 하나를 전달 / 반환하는 JavaScript 동작으로 인해 위와 같은 것이 가능합니다. 이는 연산자의 유형에 따라 다릅니다. PHP와 같은 일부 다른 언어는 연산의 실제 결과, 즉 true 또는 false를 수행합니다. 즉 결과는 항상 true 또는 false입니다. 예 :
14 && 0 /// results as 0, not false
14 || 0 /// results as 14, not true
1 && 2 && 3 && 4 /// results as 4, not true
true && '' /// results as ''
{} || '0' /// results as {}
일반적인 if 문과 비교할 때 한 가지 주요 이점은 처음 두 가지 방법이 인수의 오른쪽에서 즉 할당의 일부로 작동 할 수 있다는 것입니다.
d = (a && b) || c;
d = a ? b : c;
if `a == true` then `d = b` else `d = c`
표준 if 문으로 이것을 달성하는 유일한 방법은 어설 션을 복제하는 것입니다.
if ( a ) { d = b } else { d = c }
당신은 요청할 수 있습니다 사용하는 이유 단지 논리 연산자 대신의 삼항 연산자 간단한 경우에, 당신이 아마 것, 당신이 있는지 확인하고 싶어하지 않는 a
및 b
모두 사실. 또한 논리 연산자를 사용하여보다 간소화 된 복잡한 조건을 달성 할 수 있습니다.이 연산자는 중첩 된 삼항 연산을 사용하면 상당히 혼란 스러울 수 있습니다. 그런 다음 코드를 쉽게 읽을 수있게하려면 직관적이지 않습니다.
평범한 영어로, 문법은 다음과 같이 설명했다 :
if(condition){
do_something_if_condition_is_met;
}
else{
do_something_else_if_condition_is_not_met;
}
다음과 같이 쓸 수 있습니다 :
condition ? do_something_if_condition_is_met : do_something_else_if_condition_is_not_met;
condition ? true
true
false
그리고 ""
모든 다른 부분을 무시하는 잘해야한다.
2 == 2 ? doSomething()
같은 것 if (2 == 2) doSomething()
입니까?
: false
있거나 임대 : ""
해야합니다.