728x90
반응형
질문 : JavaScript에서 정의되지 않은 변수 또는 null 변수를 확인하는 방법은 무엇입니까?
우리는 JavaScript 코드에서 다음 코드 패턴을 자주 사용합니다.
if (typeof(some_variable) != 'undefined' && some_variable != null)
{
// Do something with some_variable
}
동일한 효과를 갖는 덜 장황한 검사 방법이 있습니까?
일부 포럼과 문헌에 따르면 단순히 다음과 같은 효과가 있어야한다고 말합니다.
if (some_variable)
{
// Do something with some_variable
}
불행히도 Firebug some_variable
이 정의되지 않은 경우 런타임에서 오류와 같은 문을 평가하지만 첫 번째 문은 괜찮습니다. 이것은 Firebug의 (원치 않는) 동작 일 뿐입니 까, 아니면이 두 가지 방법 사이에 실제로 약간의 차이가 있습니까?
답변
케이스를 구별해야합니다.
if(typeof someUndeclaredVar == whatever) // works
if(someUndeclaredVar) // throws error
선언되었지만 초기화 undefined
.
let foo;
if (foo) //evaluates to false because foo === undefined
someExistingObj.someUndefProperty
와 같은 정의되지 않은 속성 . 정의되지 않은 속성은 오류를 생성하지 않고 단순히 undefined
를 반환하며, 이는 부울로 변환 될 때 false
평가됩니다. 0
및 false
에 대해 신경 쓰지 if(obj.undefProp)
은 괜찮습니다. 이 사실을 바탕으로 한 일반적인 관용어가 있습니다.
value = obj.prop || defaultValue
즉, " obj
prop
속성이 value
에 할당하고, 그렇지 않으면 기본값 defautValue
할당합니다"를 의미합니다. 어떤 사람들은이 동작이 혼란스러워서 찾기 어려운 오류로 이어진다 고 주장하고 in
연산자를 사용하도록 권장합니다.
value = ('prop' in obj) ? obj.prop : defaultValue
출처 : https://stackoverflow.com/questions/2559318/how-to-check-for-an-undefined-or-null-variable-in-javascript
728x90
반응형
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
JSON 또는 부분 HTML을 반환하는 ASP.NET MVC 컨트롤러 작업 (0) | 2021.07.06 |
---|---|
JavaScript에서 객체를 딥 복제하는 가장 효율적인 방법 (0) | 2021.07.06 |
JavaScript 자주 쓰는 정규식 모음 (아이디, 이메일, 비밀번호, 전화번호,...) (2) | 2021.07.03 |
express.js에서 HTTPS 활성화 (0) | 2021.07.02 |
HTML 양식에서 자동 완성을 비활성화하는 W3C 유효한 방법 (0) | 2021.07.02 |