결과가 왜 거짓인가요? 코드 복사 코드는 다음과 같습니다. <br>var aColors = ["red", "green", "blue"]; <br>alert(typeof aColors[0]); //출력 "string" <br>alert(aColors[0] instanceof String) ; //output "false"; <br><br> </div>string과 String의 차이점을 구분해야 합니다. <br>aColors[0]은 문자열 값 유형입니다. , 물론 String La의 인스턴스는 아닙니다. 다음 코드를 참조하세요. <br>var aColors = ["red", "green", "blue"] <br>aColors[0]= new String("1") <br>alert(typeof aColors[0]; ); //"Object" 출력 <br>alert(aColors[0] instanceof String); // "true" 출력;<br><br>자세한 내용은 다음 문서를 참조하세요. <br><br><br>instanceof Operators <strong> </strong> 객체가 특정 클래스의 인스턴스인지 여부를 나타내는 부울 값을 반환합니다. <br>결과 = 클래스 객체 인스턴스 <br>매개변수 <br>결과 <br>필수입니다. 모든 변수. <br>객체<br>필수입니다. 모든 객체 표현. <br>클래스<br>필수입니다. 정의된 객체 클래스. <br>설명 <br>instanceof 연산자는 객체가 클래스의 인스턴스인 경우 true를 반환합니다. 객체가 지정된 클래스의 인스턴스가 아니거나 객체가 null인 경우 false를 반환합니다. <br>예제 <br>다음 예는 instanceof 연산자의 사용법을 보여줍니다. <br><br><div class="codetitle"><span><a style="CURSOR: pointer" data="68228" class="copybut" id="copybut68228" onclick="doCopy('code68228')">코드 복사<u></u></a> 코드는 다음과 같습니다. </span></div> <div class="codebody" id="code68228">function objTest(obj){ <br> var i, t, s = ""; // 변수를 생성합니다. <br>t = new Array(); // 배열을 생성합니다. <br>t["Date"] = 날짜; // 배열을 채웁니다. <br>t["Object"] = 객체; <br>t["Array"] = 배열; <br>for (i in t) <br>{ <br>if (obj 인스턴스of t[i]) / / obj의 클래스를 확인합니다. <br>{ <br>s = "obj는 " i "n"의 인스턴스입니다. <br>} <br>else <br>{ <br>s = "obj는 " i "n"의 인스턴스가 아닙니다. ; <br>} <br>} <br>return(s); // 문자열을 반환합니다. <br>} <br>var obj = new Date(); <br>document.write(objTest(obj)) <br><br> </div>Instanceof와 typeof를 모두 사용하여 변수가 비어 있거나 어떤 유형의 변수인지. <br>Typeof는 변수 유형을 얻는 데 사용됩니다. Typeof는 일반적으로 숫자, 부울, 문자열, 함수, 개체, 정의되지 않은 결과만 반환할 수 있습니다. if(a)를 사용하는 대신 typeof를 사용하여 변수가 존재하는지 여부를 확인할 수 있습니다(예: if(typeof a!="undefine"){}. 왜냐하면 a가 존재하지 않으면(선언되지 않음) For Array 오류가 발생하기 때문입니다. , Null 특수 개체에 대해 typeof를 사용하면 개체가 항상 반환됩니다. 이것이 typeof의 제한 사항입니다. <br>객체가 배열인지 확인하고 싶거나, 변수가 객체의 인스턴스인지 확인하려면, instanceof를 사용해야 합니다. 인스턴스of는 변수가 객체의 인스턴스인지 확인하는 데 사용됩니다. 예를 들어 var a=new Array(); 경고(a 인스턴스of Array); 는 true를 반환합니다. 배열은 객체의 하위 클래스이기 때문입니다. 또 다른 예: function test(){};var a=new test();alert(a instanceof test)는 true를 반환합니다. <br>Instanceof의 경우 함수의 인수라는 문제를 하나 더 삽입해야 합니다. 우리는 모두 인수가 배열이라고 생각할 수 있지만, 인스턴스of를 사용하여 테스트해 보면 인수가 배열이 아니라는 것을 알 수 있습니다. 배열 객체는 비슷해 보이지만. <br>또한: <br>테스트 var a=new Array();if (객체 인스턴스) Alert('Y');else Alert('N') <br>'Y' 가져오기 <br>그러나 if (windowinstanceofObject)alert('Y');elsealert('N'); <br>Get'N'<br>따라서 여기에서 instanceof로 테스트한 객체는 dom 모델이 아닌 js 구문의 객체를 참조합니다. 물체. <br>typeof를 사용할 때 약간의 차이가 있습니다. <br>alert(typeof(window)는 객체를 얻습니다. <br>어릴 때는 말을 줄이고 행동을 더 많이 해야 합니다.