그러냐

[ Javascript ] 함수에서 Boolean return 시 undefined일 때 본문

javascript

[ Javascript ] 함수에서 Boolean return 시 undefined일 때

관절분리 2021. 5. 20. 11:45
반응형

boolean형 함수를 만들어 쓸 때 javascript 환경에서 다음과 같이 쓰면 작동하지 않습니다.

function isTrue(num){
	if(num == 1)
    	return true;
    else
    	return false;
}

function test(num){
	if(isTrue(num)){
    	console.log("참입니다.");
    else
    	console.log("거짓입니다.);
}

반면 C++은 작동합니다.

#include <iostream>
using namespace std;

bool isTrue(int num){
  if(num == 1)
    return true;
  else
    return false;  
}

int main(){
  int a = 1;
  if(isTrue(a))
    cout<<"참입니다.";
  else
    cout<<"거짓입니다.";
}

 

Javascript는 다음과 같이 작성해야 합니다.

function isTrue(num){
	var isTrue;
	if(num == 1)
    	isTrue = true;
    else
    	isTrue false;
    return !!(isTrue);
}

function test(num){
	if(isTrue(num)){
    	console.log("참입니다.");
    else
    	console.log("거짓입니다.);
}

 

아니면 이런 식으로 작성하면 됩니다.

function isTrue(num){
	var isTrue;
	if(num == 1)
    	isTrue = true;
    else
    	isTrue false;
    return Boolean(isTrue);
}

function test(num){
	if(isTrue(num)){
    	console.log("참입니다.");
    else
    	console.log("거짓입니다.);
}

 

출처 : https://aorica.tistory.com/146

 

[ Javascript ] 함수에서 Boolean return 시 undefined일 때

boolean형 함수를 만들어 쓸 때 javascript 환경에서 다음과 같이 쓰면 작동하지 않습니다. function isTrue(num){ if(num == 1) return true; else return false; } function test(num){ if(isTrue(num)){ consol..

aorica.tistory.com

 

 

 

============================================================================

 

 

ajax 와 같이 비동기처리되는 부분에서 리턴을 하게되면 결과값이 나오기전에 if 문을 탈 수 있기 때문에

 

콜백함수에서 처리해주어야한다

 

 

============================================================================

 

 

 

 

 

 

 

 

반응형