조건이 부울 변수가 아닌 변수 인 조건문을 보았습니다. 변수는 오브젝트에 대한 것입니다.AS3 : 부울 변수가 아닌 조건문을 조건으로 사용
if (myVariable) {
doThis();
}
myVariable이 null인지 확인하는 것처럼 보입니다. 그게 다하고있는거야? 이 좋은 프로그래밍 실천인가? 이것을하는 것이 더 좋지 않을까요?
그렇게 더 명확 해 보입니다.
조건이 부울 변수가 아닌 변수 인 조건문을 보았습니다. 변수는 오브젝트에 대한 것입니다.AS3 : 부울 변수가 아닌 조건문을 조건으로 사용
if (myVariable) {
doThis();
}
myVariable이 null인지 확인하는 것처럼 보입니다. 그게 다하고있는거야? 이 좋은 프로그래밍 실천인가? 이것을하는 것이 더 좋지 않을까요?
그렇게 더 명확 해 보입니다.
가 제대로 귀하의 질문에 대답하기 위해 : if 문이 같은 객체에 사용
를, 개체가 존재하는지 확인합니다. 객체가 null
또는 undefined
경우
그래서 그렇지 않으면 true
에 해당 될 것입니다 false
의 동등한 평가합니다.
"좋은 프로그래밍 실습 (good programming practice)"에 관한 한, 매우 의견을 바탕으로 한 것이지 StackOverflow에서 가장 잘 벗어났습니다.
ECMAScript 기반 언어 (예 : AS3 및 JS)에서 성능이 저하됩니다. 그러나 C#와 같이 더 엄격한 언어는 명시적인 부울 검사가 필요하므로 여러 언어로 프로그래밍하는 경우 일관성있게하는 것이 더 쉬울 수도 있습니다.
전적으로 귀하에게 달려 있습니다. 여기
당신이 고려할 수있는 몇 가지 추가 예입니다 (! myFunction이 = NULL) 이var str:String;
if(str) //will evaluate as false as str is null/undefined
if(str = "myValue") //will evaluate true, as it will use the new assigned value of the var and you're allowed to assign values inside an if condition (though it's ugly and typically uneccessary)
var num:Number;
if(num) //will evaluate as false
num = 1;
if(num) //will evaluate as true
num = 0;
if(num) //will evaluate as false since num is 0
num = -1;
if(num) //will evaluate as true
var obj:Object
if(obj) //will evaluate false
obj = {};
if(obj) //will evaluate true (even though the object is empty, it exists)
var func:Function;
if(func) //false
func = function(){};
if(func) //true - the function exists
function foo():Boolean { return false; }
if(foo) //true - the function exists
if(foo()) //false, the return of the function is false
function foo1():void { return; };
if(foo1()) //false as there is no return type
두 번째는 할당이고 컴파일러 경고를 생성합니다. – BotMaster
@botMaster 실제로. 그러나 어떤 사람들은 if 문에 할당을 사용하여 그것을 포함 시켰습니다. – BadFeelingAboutThis
if (myVariable) // fine but not really explicit.
나는 일반적으로 사용
if (myVariable !== null) // more readable to me
더 읽기 쉬울 경우 부울을 위해이 작업을 수행한다고 가정합니다. if (myboolean == true) 그렇지 않으면 작거나 읽을 수 없습니다. – BotMaster
그것은 경우에 개체의 유형을 명시 적으로 널 (null)에 대해 확인해야 기능을 제외하고 어느 쪽이든 완전히 괜찮아요 – BotMaster
@BotMaster 컴파일러가 함수를 사용하여 컴파일하면 컴파일러가 경고를받습니다. (컴파일러가 실수로()를 버렸다고 생각하기 때문입니다) 컴파일 및 작동합니다. 하지만 분명히 함수를 명시 적으로 검사하는 것이 내 의견으로는 더 확실합니다. – BadFeelingAboutThis
downvote가있는 이유는 확실하지 않습니다 ... 많은 프로그래머가 당연한 것으로 여겨 질 수도 있지만, 유효한 일관성은 – BadFeelingAboutThis