JavaScript로 인라인 IF 문을 작성하는 방법은 무엇입니까?
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
명령문을 인라인으로 작성 하려면 코드 내부의 코드는 하나의 명령문이어야합니다.
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";
논리 연산자 만 사용하여 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;
<div id="ABLAHALAHOO">8008</div>
<div id="WABOOLAWADO">1110</div>
parseInt( $( '#ABLAHALAHOO' ).text()) > parseInt( $( '#WABOOLAWADO ).text()) ? alert( 'Eat potato' ) : alert( 'You starve' );
ELSE없이 인라인 IF를 원할 경우 논리 AND 연산자를 사용할 수 있습니다.
(a < b) && /*your code*/;
ELSE도 필요한 경우 다른 사람들이 제안한 삼항 연산을 사용하십시오.
JavaScript에서 다음과 같이 할 수 있습니다.
a < b ? passed() : failed();
종종 다음을 사용하여 조건 당 더 많은 코드를 실행해야합니다 ( , , )
.
var a = 2;
var b = 3;
var c = 0;
( a < b ? ( alert('hi'), a=3, b=2, c=a*b ) : ( alert('by'), a=4, b=10, c=a/b ) );
참고로, 조건부 연산자를 작성할 수 있습니다
var a = (truthy) ? 1 : (falsy) ? 2 : 3;
논리가 충분히 복잡한 경우 IIFE 사용을 고려할 수 있습니다
var a = (function () {
if (truthy) return 1;
else if (falsy) return 2;
return 3;
})();
물론,이 로직을 두 번 이상 사용하려는 경우,이를 멋지게 유지하기위한 함수로 캡슐화해야합니다.
여기에 && 및 ||를 사용하여 인라인 if 조건을 사용할 수도 있습니다. 연산자. 이렇게
var a = 2;
var b = 0;
var c = (a > b || b == 0)? "do something" : "do something else";
본질적으로 질문이 아닙니까 : 다음을 쓸 수 있습니까?
if (foo)
console.log(bar)
else
console.log(foo + bar)
대답은 그렇습니다. 위의 내용은 번역 될 것입니다.
그러나 다음을주의하십시오.
if (foo)
if (bar)
console.log(foo)
else
console.log(bar)
else
console.log(foobar)
위와 같은 예외가 발생하므로 모호한 코드를 중괄호로 묶어야합니다 (유사한 순열로 인해 원치 않는 동작이 발생 함).
참고 URL : https://stackoverflow.com/questions/10270351/how-to-write-an-inline-if-statement-in-javascript
'development' 카테고리의 다른 글
트위터 부트 스트랩 원격 모달은 매번 동일한 내용을 보여줍니다 (0) | 2020.03.30 |
---|---|
Xcode 6에서 ProjectName-Prefix.pch가 자동으로 생성되지 않는 이유는 무엇입니까? (0) | 2020.03.30 |
루비에서 바이너리 파일을 문자열로 읽기 (0) | 2020.03.30 |
jQuery에서 마우스가 요소 위에 있는지 어떻게 확인합니까? (0) | 2020.03.30 |
cocoapods를 설치하는 방법? (0) | 2020.03.30 |