2014-09-30 1 views

답변

4

코드에서 설정되지 않은 변수에 대한 오류를 피하기 위해 이러한 종류의 코드가 사용됩니다. 마찬가지로이 경우 : 지금 당신을

if (!isset($variable)) $variable = ""; 

:

는 PHP에서
function sayHello(name) { 
    var name = name || ""; 
    return "Hello " + name; 
} 

sayHello(); // "Hello " 
sayHello("Mike"); // "Hello Mike" 

function lengthOf(obj) { 
    var obj = obj || []; 
    return obj.length; 
} 

lengthOf(); // 0 
lengthOf([1,2,3]); // 3 

당신이 isset() 기능을 사용하여 작업을 수행 할 수 있습니다

function sayHello(name) { 
    return "Hello " + name; 
} 

sayHello(); // "Hello undefined" 

function lengthOf(obj) { 
    return obj.length; 
} 

lengthOf(); // ReferenceError cannot read property length of undefined 

당신은 간단한 줄을 추가하여이를 방지 할 수 있습니다 오류나 예기치 않은 결과없이 변수를 사용할 수 있습니다.

+0

희망이 없어도 괜찮습니다. – manuell

+0

감사합니다. –

1

하나의 유스 케이스는 동일한 변수/ns를 사용하는 두 개의 스크립트가 있고 이미 정의되지 않은 경우에만 새 스크립트를 작성하려는 경우입니다.

당신은 자바 스크립트 네임 스페이스를 에뮬레이션하려면이 옵션을 사용할 수 있습니다

(function(api){ 

/* private functions here */ 

api.apiFunction = function(){ /* useful code*/ } 

})(window.myNamespace = window.myNamespace || {}) 

당신은 그럼 그냥 새로운 기능을 추가하기 위해 동일한 구문을 사용하는 것과 같은 네임 스페이스의 일부가 될 것인지 나중에로드 할 수있는 다른 스크립트를 :

(function(api){ 

/* private functions here */ 

api.anotherApiFunction = function(){ /* useful code*/ } 

})(window.myNamespace = window.myNamespace || {}) 

anotherApiFunction이 이제는 동일한 네임 스페이스에 추가됩니다. 다음과 같은 두 가지 기능에 모두 액세스 할 수 있습니다.

myNamespace.apiFunction(); 
myNamespace.anotherApiFunction(); 
관련 문제