복붙노트

[JQUERY] 변수가 '정의되지 않은'또는 '널 (null)'의 경우 어떻게 확인할 수 있습니까?

JQUERY

변수가 '정의되지 않은'또는 '널 (null)'의 경우 어떻게 확인할 수 있습니까?

해결법


  1. 1.이 작업을 수행 할 수있는 추상적 인 항등 연산자의 특성을 사용할 수 있습니다 :

    이 작업을 수행 할 수있는 추상적 인 항등 연산자의 특성을 사용할 수 있습니다 :

    if (variable == null){
        // your code here.
    }
    

    정의되지 않은 널 (null)이 == 사실이기 때문에, 위의 코드를 사용하여 null과 undefined를 모두 잡을 것입니다.


  2. 2.동시에 정의되지 않은 캐치 null로 표준 방법이 있습니다 :

    동시에 정의되지 않은 캐치 null로 표준 방법이 있습니다 :

    if (variable == null) {
         // do something 
    }
    

    을 실현합니다 더 명시 적 미만 간결 100 %에 상당이다 :

    if (variable === undefined || variable === null) {
         // do something 
    }
    

    전문 JS를 작성할 때, 그것은 종류의 평등과 === 대 ==의 행동이 이해하는 것이 당연한 것. 그러므로 우리는 사용 == 만 null로 비교합니다.

    대해서 typeof의 사용을 제안 발언은 단순히 잘못입니다. 변수가 존재하지 않는 경우 예, 위의 내 솔루션은 ReferenceError가 발생합니다. 이것은 좋은 것입니다. 이 ReferenceError가 바람직하다 : 그것은 당신이 당신의 실수를 발견하고 당신이 당신의 코드를 발송하기 전에를 해결하는 데 도움이됩니다, 단지 다른 언어 컴파일러 에러 것처럼. 사용 시도 / 캐치 당신이 제어하지 않는 입력 작업하는 경우.

    당신은 당신의 코드에서 선언되지 않은 변수에 대한 참조가 없어야합니다.


  3. 3.위의 답변을 결합, 가장 완벽한 대답이 될 것 같다 :

    위의 답변을 결합, 가장 완벽한 대답이 될 것 같다 :

    if( typeof variable === 'undefined' || variable === null ){
        // Do stuff
    }
    

    이 중 하나를 null로 설정 또는 정의되지 않은 명시 적으로 선언되지 않은 또는 선언 된 모든 변수에 대해 작동합니다. 부울 표현식은 실제 null 이외의 값이 선언 된 모든 변수에 false로 평가해야합니다.


  4. 4.

    if (variable == null) {
        // Do stuff, will only match null or undefined, this won't match false
    }
    

  5. 5.

    if (typeof EmpName != 'undefined' && EmpName) {
    

    값이 아닌 경우 true로 평가합니다 :


  6. 6.의 jQuery ATTR () 함수가 반환하는 중 빈 문자열 또는 실제 값 (결코 null 또는 정의되지 않은). 당신의 선택은 어떤 요소를 반환하지 않은 경우는 undefined를 반환 유일한 시간이다.

    의 jQuery ATTR () 함수가 반환하는 중 빈 문자열 또는 실제 값 (결코 null 또는 정의되지 않은). 당신의 선택은 어떤 요소를 반환하지 않은 경우는 undefined를 반환 유일한 시간이다.

    그래서 당신은 빈 문자열에 대한 테스트를 할 수 있습니다. 빈 문자열 널 (null)와 정의되지 않은이 거짓-Y 있기 때문에 또한, 당신은이 작업을 수행 할 수 있습니다

    if (!EmpName) { //do something }
    

  7. 7.나는 이것에 대한 내 자신의 함수를 작성 왔어요. 자바 스크립트는 이상입니다.

    나는 이것에 대한 내 자신의 함수를 작성 왔어요. 자바 스크립트는 이상입니다.

    말 그대로 아무것도 사용할 수 있습니다. (주이 정보는 일반적으로도 필요하기 때문에 변수가 모든 가능한 값이 포함되어 있습니다. 그러나 경우이 또한 확인, 나는 그것의 가치 게시를 생각). 메모를 떠나 고려하시기 바랍니다.

    function empty(v) {
        let type = typeof v;
        if (type === 'undefined') {
            return true;
        }
        if (type === 'boolean') {
            return !v;
        }
        if (v === null) {
            return true;
        }
        if (v === undefined) {
            return true;
        }
        if (v instanceof Array) {
            if (v.length < 1) {
                return true;
            }
        } else if (type === 'string') {
            if (v.length < 1) {
                return true;
            }
            if (v === '0') {
                return true;
            }
        } else if (type === 'object') {
            if (Object.keys(v).length < 1) {
                return true;
            }
        } else if (type === 'number') {
            if (v === 0) {
                return true;
            }
        }
        return false;
    }
    

    타이프 라이터 호환.

    이 기능은 PHP의 빈 () 함수와 같은 똑같은 일을한다 (반환 값 참조)

    고려 미정, NULL, 거짓, 0, 0.0, "0"{}, [] 비어있다.

    사실 "0.0", NaN이는, "", 비어 있지 않은 것으로 간주됩니다.


  8. 8.아마이 작업을 수행하는 가장 짧은 방법입니다 :

    아마이 작업을 수행하는 가장 짧은 방법입니다 :

    if(EmpName == null) { /* DO SOMETHING */ };
    

    여기 증거입니다 :

    기능 체크 (EmpName) { 경우 (EmpName == NULL) {TRUE를 반환; }; false를 반환; } VAR 로그 = (t, a) =>을 console.log ( '$ {t} -> $ {검사 (A)}'); ( '널 (NULL)'널)를 기록; 로그 ( '미정의'미정); ( 'NaN이'NaN이)를 기록; 로그 ( ' ""' ""); 로그 ( "{}, {}); 로그 ( "[] []); 로그 ( '[1], [1]); 로그 ( '[0] [0]); 로그 ( '[]'[]); ( '진정한'TRUE) 로그; ( '거짓'거짓)를 기록; 로그 ( ' "true"로' "진정한"); 로그 ( ' "거짓"' "거짓"); ( '무한'무한대)를 기록; 로그 ( '- 무한대', -Infinity); 로그 ( '1', 1); 로그 (0, 0); ( '- 1', -1) 기록; 로그 ( ''1 ' ","1 "); 로그 ( ''0 ' ","0 "); ( ''- 1 ' ","-1 ") 로그; // "무효 0"의 경우 을 console.log ( '--- \ n "참"', TRUE); CONSOLE.LOG ( ''0 무효 "인 '무효 0); 로그 (무효 0 무효 0); // "0 무효"는 "정의되지 않은"입니다

    그리고 여기에 대한 자세한 내용은 (여기 소스) == 있습니다

    보너스 : ===는 == (AGC 답을 지켜 볼)보다 더 분명한 이유 이유


  9. 9.짧고 쉬운 :

    짧고 쉬운 :

    if(!EmpName ){
     // DO SOMETHING
    }
    

    EmpName 경우이 사실 평가합니다 :


  10. 10.검사 할 변수가 글로벌 인 경우 수행

    검사 할 변수가 글로벌 인 경우 수행

    if (window.yourVarName) {
        // Your code here
    }
    

    yourVarName 변수가 존재하지 않는 경우에도 확인이 방법은 오류가 발생하지 않습니다.

    if (window.history) {
        history.back();
    }
    

    창은 속성으로 모든 글로벌 변수를 보유하는 객체이며, 자바 스크립트에서가 아닌 기존 개체의 속성에 액세스하려고하는 법률이다. 역사는 다음 존재하지 않는 경우 window.history 실행 undefined를 반환합니다. 는 IF (미정의) {} 블록 내의 코드가 실행되지 않도록 정의는 falsey이다.


  11. 11.만약 jQuery를 사용하고 있기 때문에,이 변수가 정의되지 않은 경우, 또는 그 값이 하나의 기능을 이용하여 널을인지를 결정할 수있다.

    만약 jQuery를 사용하고 있기 때문에,이 변수가 정의되지 않은 경우, 또는 그 값이 하나의 기능을 이용하여 널을인지를 결정할 수있다.

    var s; // undefined
    jQuery.isEmptyObject(s); // will return true;
    
    s = null; // defined as null
    jQuery.isEmptyObject(s); // will return true;
    
    // usage
    if(jQuery.isEmptyObject(s)){
        alert('Either variable: s is undefined or its value is null');
    }else{
         alert('variable: s has value ' + s);
    }
    
    s = 'something'; // defined with some value
    jQuery.isEmptyObject(s); // will return false;
    

  12. 12.난 그냥이 문제 즉 객체가 null의 경우 확인을 했어. 간단히 말해서 나는 이것을 사용 :

    난 그냥이 문제 즉 객체가 null의 경우 확인을 했어. 간단히 말해서 나는 이것을 사용 :

    if (object) {
        // Your code
    }
    

    예를 들면 :

    if (document.getElementById("enterJob")) {
        document.getElementById("enterJob").className += ' current';
    }
    

  13. 13.자바 스크립트에서, 내 지식에 따라, 우리는 다음과 같은 정의되지 않은, null 또는 빈 변수를 확인할 수 있습니다.

    자바 스크립트에서, 내 지식에 따라, 우리는 다음과 같은 정의되지 않은, null 또는 빈 변수를 확인할 수 있습니다.

    if (variable === undefined){
    }
    
    if (variable === null){
    }
    
    if (variable === ''){
    }
    

    모든 조건을 확인하십시오 :

    if(variable === undefined || variable === null || variable === ''){
    }
    

  14. 14.jQuery를 체크 요소가 아닌 널 (null) :

    jQuery를 체크 요소가 아닌 널 (null) :

    var dvElement = $('#dvElement');
    
    if (dvElement.length  > 0) {
        // Do something
    }
    else{
        // Else do something else
    }
    

  15. 15.당신은 단순히 다음 사용할 수 있습니다 (나는이 작업을 수행하는 짧은 방법이 알고있다, 그러나 이것은 최소한의 코드를보고 다른 사람을 위해, 쉽게 시각적으로 관찰 할 수있다).

    당신은 단순히 다음 사용할 수 있습니다 (나는이 작업을 수행하는 짧은 방법이 알고있다, 그러나 이것은 최소한의 코드를보고 다른 사람을 위해, 쉽게 시각적으로 관찰 할 수있다).

    if (x === null || x === undefined) {
     // Add your response code here, etc.
    }
    

  16. 16.확인하는 가장 쉬운 방법은 다음과 같습니다

    확인하는 가장 쉬운 방법은 다음과 같습니다

    if(!variable) {
      // If the variable is null or undefined then execution of code will enter here.
    }
    

  17. 17.아래의 솔루션 :

    아래의 솔루션 :

    const getType = (val) => typeof val === 'undefined' || !val ? null : typeof val;
    const isDeepEqual = (a, b) => getType(a) === getType(b);
    
    console.log(isDeepEqual(1, 1)); // true
    console.log(isDeepEqual(null, null)); // true
    console.log(isDeepEqual([], [])); // true
    console.log(isDeepEqual(1, "1")); // false
    etc...
    

    나는 다음을 확인 할 수있어 :


  18. 18.테스트에 변수가 null 인 경우 또는 내가 코드 아래를 사용 undefined가.

    테스트에 변수가 null 인 경우 또는 내가 코드 아래를 사용 undefined가.

        if(typeof sVal === 'undefined' || sVal === null || sVal === ''){
          console.log('variable is undefined or null');
        }
    

  19. 19.나는 크롬 콘솔에서이 테스트를 실행합니다. (무효 0) 당신이 정의되지 않은 확인할 수 있습니다 사용 :

    나는 크롬 콘솔에서이 테스트를 실행합니다. (무효 0) 당신이 정의되지 않은 확인할 수 있습니다 사용 :

    var c;
    undefined
    if (c === void 0) alert();
    // output =  undefined
    var c = 1;
    // output =  undefined
    if (c === void 0) alert();
    // output =   undefined
    // check c value  c
    // output =  1
    if (c === void 0) alert();
    // output =  undefined
    c = undefined;
    // output =  undefined
    if (c === void 0) alert();
    // output =   undefined
    

  20. 20.이에서 살펴 보자,

    이에서 살펴 보자,

    사과 값의 변수가 null 때문에 제 하나는 널 표시.

    그래서 당신은 값이 정의되지 않았거나 널 (null)인지 여부를 확인할 수 있습니다.

    if(apple !== undefined || apple !== null) {
        // Can use variable without any error
    }
    

  21. 21.

    (null == undefined)  // true
    
    (null === undefined) // false
    

    유형 및 값 모두 === 확인하기 때문에. 모두의 유형은 다르지만 값은 동일합니다.


  22. 22.

    var i;
    
    if (i === null || typeof i === 'undefined') {
        console.log(i, 'i is undefined or null')
    }
    else {
        console.log(i, 'i has some value')
    }
    

  23. 23.푸 == 널 검사는 트릭을하고 짧은 방식으로 "정의되지 않았거나 널 (null)"사건을 해결해야한다. (. "foo는 선언되지 않은"경우를 고려하지 않음)하지만 (가장 좋은 방법으로) 3 등호를하는 데 사용되는 사람들은 동의하지 않을 수 있습니다. eqeqeq 또는 그냥보기 eslint 및 tslint의 규칙을 트리플 - 동일 ...

    푸 == 널 검사는 트릭을하고 짧은 방식으로 "정의되지 않았거나 널 (null)"사건을 해결해야한다. (. "foo는 선언되지 않은"경우를 고려하지 않음)하지만 (가장 좋은 방법으로) 3 등호를하는 데 사용되는 사람들은 동의하지 않을 수 있습니다. eqeqeq 또는 그냥보기 eslint 및 tslint의 규칙을 트리플 - 동일 ...

    명시 적 접근 방식, 우리가 확인 될 때 ​​변수가 정의되지는 null 별도로,이 경우에 적용되어야하고, 주제에 대한 나의 공헌 (지금은 27 음이 아닌 답변!) 짧고 안전한 모두 무효가 0을 사용하는 경우 방법은 정의에 대한 검사를 수행합니다.

    정의되지 않은이 예약어하지 않고 (MDN)을 그림자 될 수 있기 때문에 안전하지 않습니다 정의되지 않은 foo는 === 사용. 사용 대해서 typeof === '정의되지 않은'검사가 안전하지만, 우리가 걱정하지 않을 경우 foo는-IS-선언되지 않은 다음과 같은 방법을 사용할 수 있습니다 경우 :

    if (foo === void 0 || foo === null) { ... }
    

  24. 24.당신이 함수를 만드는 경우를 확인합니다 :

    당신이 함수를 만드는 경우를 확인합니다 :

    export function isEmpty (v) {
     if (typeof v === "undefined") {
       return true;
     }
     if (v === null) {
       return true;
     }
     if (typeof v === "object" && Object.keys(v).length === 0) {
       return true;
     }
    
     if (Array.isArray(v) && v.length === 0) {
       return true;
     }
    
     if (typeof v === "string" && v.trim().length === 0) {
       return true;
     }
    
    return false;
    }
    

  25. 25.가장 좋은 방법은:

    가장 좋은 방법은:

    if(typeof variable==='undefined' || variable===null) {
    
    /* do your stuff */
    }
    

  26. 26.특수 null 값은 빈 객체 참조로 간주됩니다로서 대해서 typeof 널 (null)을 호출하면, "개체"의 값을 반환합니다. 버전 7을 통해 버전 5 및 크롬을 통해 Safari는 다른 모든 브라우저 "개체"를 반환하면서 정규 표현식 반환 "기능"에 대해서 typeof를 호출 특질이있다.

    특수 null 값은 빈 객체 참조로 간주됩니다로서 대해서 typeof 널 (null)을 호출하면, "개체"의 값을 반환합니다. 버전 7을 통해 버전 5 및 크롬을 통해 Safari는 다른 모든 브라우저 "개체"를 반환하면서 정규 표현식 반환 "기능"에 대해서 typeof를 호출 특질이있다.


  27. 27.

    var x;
    if (x === undefined) {
        alert ("only declared, but not defined.")
    };
    if (typeof y === "undefined") {
        alert ("not even declared.")
    };
    

    당신은 두 번째 하나를 사용할 수 있습니다 : 그것은 정의와 선언을 모두 확인합니다으로


  28. 28.나는 아직도이 두 가지 조건을 테스트하는 가장 좋은 / 안전한 방법은 문자열 값을 캐스팅 생각 :

    나는 아직도이 두 가지 조건을 테스트하는 가장 좋은 / 안전한 방법은 문자열 값을 캐스팅 생각 :

    var EmpName = $("div#esd-names div#name").attr('class');
    
    // Undefined check
    if (Object.prototype.toString.call(EmpName) === '[object Undefined]'){
        // Do something with your code
    }
    
    // Nullcheck
    if (Object.prototype.toString.call(EmpName) === '[object Null]'){
        // Do something with your code
    }
    

  29. 29.값이 단순히 대해서 typeof 사용하여 정의되지 않았거나 null의 경우 확인할 수 있습니다 :

    값이 단순히 대해서 typeof 사용하여 정의되지 않았거나 null의 경우 확인할 수 있습니다 :

    if(typeof value == 'undefined'){
    

  30. 30.(X == null가) 자바 스크립트에서 나쁜 생각합니다. "=="과 판사는 - 그것은 예기치 않은 유형 강제 변환이 발생할 수 있습니다, 그것은 커피 스크립트 읽을 수 없습니다 조건 판단 "! ="를 "=="사용하거나 결코!

    (X == null가) 자바 스크립트에서 나쁜 생각합니다. "=="과 판사는 - 그것은 예기치 않은 유형 강제 변환이 발생할 수 있습니다, 그것은 커피 스크립트 읽을 수 없습니다 조건 판단 "! ="를 "=="사용하거나 결코!

    (X)는 더 나은,하지만 ""0과 조심해야됩니다. 그것은 "! = null이"와 거짓이 아닌 동일한 방법으로 처리됩니다 것은 사실이다.

    자바 스크립트 모범 사례를 참조하십시오.

  31. from https://stackoverflow.com/questions/2647867/how-can-i-determine-if-a-variable-is-undefined-or-null by cc-by-sa and MIT license