JavaScript에 개체가 있는지 확인합니다.
JavaScript에서 객체의 존재를 확인하려면 어떻게 해야 합니까?
다음과 같은 기능이 있습니다.
if (!null)
alert("GOT HERE");
그러나 이 경우 오류가 발생합니다.
if (!maybeObject)
alert("GOT HERE");
오류:
maybeObject
정의되어 있지 않습니다.
를 안전하게 사용할 수 있습니다.typeof
연산자가 정의되지 않은 변수의 경우.
null을 포함한 값이 할당되어 있는 경우 typeof는 정의되지 않은 값을 반환합니다.type of는 항상 문자열을 반환합니다.
그러므로
if (typeof maybeObject != "undefined") {
alert("GOT THERE");
}
반쪽 진실이 많으니까 좀 더 명확히 해야겠다 싶어서요
실제로 변수가 존재하는지 정확하게 구분할 수 없습니다(매초마다 시행 캐치 블록으로 줄바꿈하려는 경우가 아니면).
그 이유는 Javascript가 이 악명 높은 가치를 가지고 있기 때문입니다.undefined
이는 변수가 정의되지 않았거나 존재하지 않는다는 것을 의미하지 않는다.undefined !== not defined
var a;
alert(typeof a); // undefined (declared without a value)
alert(typeof b); // undefined (not declared)
즉, 존재하는 변수와 존재하지 않는 변수 둘 다undefined
유형.
@Kevin의 오해는null == undefined
그것은 타입의 강압에 의한 것이며, Crockford가 이러한 것에 대해 잘 모르는 모든 사람들에게 항상 엄격한 평등 연산자를 사용하라고 말하는 주된 이유이다.===
가짜 값을 테스트합니다. null !== undefined
기대했던 것을 얻을 수 있습니다.주의해 주십시오.foo != null
변수가 둘 다 아닌지를 확인하는 효과적인 방법이 될 수 있습니다.undefined
도 아니다null
가독성에 도움이 될 수 있기 때문에 물론 명확하게 말할 수 있습니다.
오브젝트가 존재하는지 여부를 확인하기 위해 질문을 제한하면typeof o == "object"
어레이 오브젝트를 고려하지 않는 경우를 제외하고 권장할 수 있습니다.이는 다음 유형의 어레이 오브젝트도 포함되기 때문입니다.object
좀 헷갈리실 수도 있어요말할 것도 없이typeof null
당신에게도 줄 것이다.object
그건 단순히 잘못된 거야
당신이 정말로 조심해야 할 가장 중요한 부분은typeof
,undefined
,null
,unknown
기타 미스터리는 호스트 오브젝트입니다.그들은 믿을 수 없다.그들은 그들이 원하는 거의 모든 더러운 일을 할 수 있다.이러한 기능을 사용할 수 있는 유일한 안전한 방법은 존재하지 않을 수 있으므로 주의하고 가능하면 기능을 확인하십시오.
다음을 사용할 수 있습니다.
if (typeof objectName == 'object') {
//do something
}
두 가지 방법.
로컬 변수의 유형
다음 유형을 사용하여 로컬 개체를 테스트할 수 있습니다.
if (typeof object !== "undefined") {}
전역 변수 창
window 객체를 검사하여 글로벌오브젝트(글로벌스코프에 정의되어 있는 것)를 테스트할 수 있습니다.
if (window.FormData) {}
글로벌 , 「」를 사용할 수 .if (!window.maybeObject)
"type of"를 사용할 수 있습니다.
if(typeof maybeObject != "undefined")
alert("GOT HERE");
...if(maybeObject)
[ Javascripts ], [null check], [Null check], [Javascripts], [J
if(maybeObject){
alert("GOT HERE");
}
'만'이maybeObject
가 표시됩니다 체체 、 - - 、 - - - 。경보가 표시됩니다.제 사이트에 예가 있습니다.
https://sites.google.com/site/javaerrorsandsolutions/home/javascript-dynamic-checkboxes
실밥은 꽤 오래전에 열렸어요.그 사이에 3진 연산자를 사용하는 것이 가장 간단한 옵션이라고 생각합니다.
maybeObject ? console.log(maybeObject.id) : ""
존재에만 관심이 있는 경우(이것이 선언되었습니까?), 승인된 답변으로 충분합니다.
if (typeof maybeObject != "undefined") {
alert("GOT THERE");
}
실제 값이 필요한 경우 다음을 추가해야 합니다.
if (typeof maybeObject != "undefined" && maybeObject != null ) {
alert("GOT THERE");
}
~로typeof( null ) == "object"
★★bar = { x: 1, y: 2, z: null}
typeof( bar.z ) == "object"
typeof( bar.not_present ) == "undefined"
어느 쪽도 할 수 .null
★★★★★★★★★★★★★★★★★」undefined
, 그 이후부터, 「」는 「」입니다.typeof
하지 않는 하지 않습니다.&&
숏에 의해 런타임에러가 발생하지 않습니다.
붙이는 typeof()
):
function exists(data){
data !== null && data !== undefined
}
if( exists( maybeObject ) ){
alert("Got here!");
}
해 봤어요.typeOf
위에서 예시를 들었지만 아무 것도 효과가 없었기 때문에 대신 다음과 같은 것을 사용했습니다.
btnAdd = document.getElementById("elementNotLoadedYet");
if (btnAdd) {
btnAdd.textContent = "Some text here";
} else {
alert("not detected!");
}
개체/변수의 존재를 확인하는 것 외에 "최악의 경우" 출력을 제공하거나 적어도 경고에 트랩하여 간과되지 않도록 할 수 있습니다.
오류를 확인하고 대체 오류를 제공하는 함수의 예제입니다.
function fillForm(obj) {
try {
var output;
output = (typeof obj !== 'undefined') ? obj : '';
return (output);
}
catch (err) {
// If an error was thrown, sent it as an alert
// to help with debugging any problems
alert(err.toString());
// If the obj doesn't exist or it's empty
// I want to fill the form with ""
return ('');
} // catch End
} // fillForm End
또, 전달하고 있는 오브젝트가 x, x.m, x.m[z]일 수 있기 때문에, x.m이 존재하지 않으면, x.m[z]타입이 에러와 함께 실패해 버리기 때문에 작성했습니다.
도움이 됐으면 좋겠다.(BTW, JS는 초보)
이것은, DOM 오브젝트에 대해서 동작했습니다.
if(document.getElementsById('IDname').length != 0 ){
alert("object exist");
}
if (n === Object(n)) {
// code
}
if (maybeObject !== undefined)
alert("Got here!");
div alignmnt 탭 패널을 사용하여 텍스트 상자 값을 인라인 프레임으로 한 프레임으로 설정합니다.따라서 먼저 값을 설정하기 전에 선택한 탭 패널 프레임을 사용할 수 있는지 여부를 확인해야 합니다.
Javascript 코드:
/////////////////////////////////////////
<script>
function set_TextID()
{
try
{
if(!parent.frames["entry"])
{
alert("Frame object not found");
}
else
{
var setText=document.getElementById("formx").value;
parent.frames["entry"].document.getElementById("form_id").value=setText;
}
if(!parent.frames["education"])
{
alert("Frame object not found");
}
else
{
var setText=document.getElementById("formx").value;
parent.frames["education"].document.getElementById("form_id").value=setText;
}
if(!parent.frames["contact"])
{
alert("Frame object not found");
}
else
{
var setText=document.getElementById("formx").value;
parent.frames["contact"].document.getElementById("form_id").value=setText;
}
}catch(exception){}
}
</script>
0과 null은 암묵적인 포인터입니다.산술, 비교, 화면 인쇄를 하지 않으면 실제로 입력할 필요가 없습니다.암묵적이야.암묵적으로.같은 이유로 유형도 필요하지 않습니다.구경하세요.
if(obj) console.log console";
요청은 받지 못했습니다.그 이외의 요청은 포함되어 있지 않기 때문입니다.질문에 맞지 않는 여분의 콘텐츠를 좋아하는 만큼.단순하게 하자.
이렇게 하는 게 제일 쉬울 것 같아
if(myobject_or_myvar)
alert('it exists');
else
alert("what the hell you'll talking about");
또는 제 배타적인 exists() 메서드를 사용하여 불가능하다고 생각되는 작업을 수행할 수 있습니다.
거 있잖아요.exists("blabla")
또는 다음 항목도 있습니다.exists("foreignObject.guessedProperty.guessNext.propertyNeeded")
가능한 일이기도 합니다.
언급URL : https://stackoverflow.com/questions/4186906/check-if-object-exists-in-javascript
'IT' 카테고리의 다른 글
Java에서의 어레이 길이 (0) | 2023.01.31 |
---|---|
DB에서 점의 가장 가까운 점을 가져옵니다. (0) | 2023.01.31 |
MariaDB/MySQL에서 = 대신 <=>을(를) 사용하지 않는 경우 (0) | 2023.01.31 |
MariaDB - my.cnf를 통해 max_connections를 설정할 수 없습니다. (0) | 2023.01.31 |
날짜 형식 지정(Moment.js) (0) | 2023.01.31 |