Heim Web-Frontend js-Tutorial JS中typeof与instanceof的区别

JS中typeof与instanceof的区别

Jun 01, 2016 am 09:55 AM
instanceof typeof

JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的。但它们之间还是有区别的:
typeof
typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。
它返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回如下几个结果:
number,boolean,string,function,object,undefined。我们可以使用 typeof 来获取一个变量是否存在,如 if(typeof a!="undefined"){alert("ok")},而不要去使用 if(a) 因为如果 a 不存在(未声明)则会出错,对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。


instanceof
instance:实例,例子
a instanceof b?alert("true"):alert("false"); //a是b的实例?真:假
instanceof 用于判断一个变量是否某个对象的实例,如 var a=new Array();alert(a instanceof Array); 会返回 true,同时 alert(a instanceof Object) 也会返回 true;这是因为 Array 是 object 的子类。再如:function test(){};var a=new test();alert(a instanceof test) 会返回
谈到 instanceof 我们要多插入一个问题,就是 function 的 arguments,我们大家也许都认为 arguments 是一个 Array,但如果使用 instaceof 去测试会发现 arguments 不是一个 Array 对象,尽管看起来很像。
另外:
测试 var a=new Array();if (a instanceof Object) alert('Y');else alert('N');
得'Y’
但 if (window instanceof Object) alert('Y');else alert('N');
得'N'
所以,这里的 instanceof 测试的 object 是指 js 语法中的 object,不是指 dom 模型对象。
使用 typeof 会有些区别
alert(typeof(window)) 会得 object

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was macht die Instanz von? Was macht die Instanz von? Nov 14, 2023 pm 03:50 PM

Die Funktion von „instanceof“ besteht darin, zu bestimmen, ob ein Objekt eine Instanz einer bestimmten Klasse ist oder ob es eine Schnittstelle implementiert. Instanz von ist ein Operator, mit dem überprüft wird, ob ein Objekt von einem bestimmten Typ ist. Verwendungsszenarien des Instanzoperators: 1. Typprüfung: Kann verwendet werden, um den spezifischen Typ eines Objekts zu bestimmen, um je nach Typ unterschiedliche Logik auszuführen. 2. Schnittstellenbeurteilung: Kann verwendet werden, um festzustellen, ob ein Objekt eine Schnittstelle implementiert , um zu bestimmen, ob ein Objekt eine Schnittstelle implementiert. 3. Abwärtstransformation usw.

So verwenden Sie den Instanzoperator in Java So verwenden Sie den Instanzoperator in Java May 19, 2023 am 08:16 AM

Konzept 1. Dieser Operator wird verwendet, um Objekte zu bearbeiten und zu prüfen, ob das Objekt von einem bestimmten Typ ist (Typ oder Schnittstellentyp). Format 2. Wenn das Objekt, auf das die Variable auf der linken Seite des Rechners zeigt, ein Objekt der Klasse oder Schnittstelle auf der rechten Seite des Operators ist, ist das Ergebnis wahr. (Objectreferencevariable)instanceof(class/interfacetype) Instanzpaketcom.verify_instanceof;publicclassTestInstanceOf{publicstaticvoidmain(String[]args){//Die folgenden vier Codezeilen werden zum Beweisen verwendet: Instanzvon

Was bedeutet Instanz von? Was bedeutet Instanz von? Nov 20, 2023 pm 02:32 PM

Instanceof ist ein Operator in JavaScript, der verwendet wird, um zu erkennen, ob das „Prototyp“-Attribut des Konstruktors irgendwo in der Prototypenkette des Objekts vorkommt. Die Syntax lautet „Objektinstanz des Konstruktors“, wobei „Objekt“ das zu erkennende Objekt und „Konstruktor“ das ist Zu erkennendes Objekt.

Was bedeutet „Instanz von' in Java? Was bedeutet „Instanz von' in Java? Nov 13, 2023 pm 01:52 PM

In Java ist „Instanz von“ ein binärer Operator, mit dem überprüft wird, ob ein Objekt eine Instanz einer Klasse oder eine Instanz einer Unterklasse einer Klasse ist. Seine Syntax lautet „Objektinstanz der Klasse“, wobei „Objekt“ ein Objekt ist. Anführungszeichen: „Klasse“ ist eine Klasse Name oder Schnittstellenname.

Warum nicht Instanz von verwenden? Warum nicht Instanz von verwenden? Nov 14, 2023 pm 04:05 PM

Die Gründe für die Nichtverwendung von „instanceof“ sind: 1. Die von Ihnen verwendete Programmiersprache unterstützt möglicherweise nicht den „instanceof“-Operator. 2. Sie sind der Meinung, dass die Verwendung anderer Methoden die Anforderungen besser erfüllen kann effektiver oder für Ihre Bedürfnisse besser geeignet sein; 3. Sie sind nicht mit der Verwendung des Operators „instanceof“ vertraut oder unsicher über sein Verhalten.

Warum wird ein Fehler gemeldet, ohne dass eine Instanz von hinzugefügt wird? Warum wird ein Fehler gemeldet, ohne dass eine Instanz von hinzugefügt wird? Nov 13, 2023 pm 03:05 PM

Der Grund dafür ist: Mit dem Operator „instanceof“ wird überprüft, ob ein Objekt eine Instanz einer bestimmten Klasse (oder ihrer abgeleiteten Klasse) ist. Wenn das Objekt keine Instanz einer Klasse ist, kann keine Typbestimmung durchgeführt werden und es wird ein Fehler ausgegeben. Um diesen Fehler zu vermeiden, müssen Sie bei Verwendung des Instanzoperators sicherstellen, dass das Objekt eine Instanz einer Klasse ist. Wenn Sie sich über den Typ eines Objekts nicht sicher sind, können Sie andere Methoden verwenden, um den Typ zu bestimmen.

Warum müssen wir die Übertragung nach der Instanz von erzwingen? Warum müssen wir die Übertragung nach der Instanz von erzwingen? Nov 14, 2023 pm 03:43 PM

Wenn Sie den Operator „instanceof“ zum Überprüfen des Typs eines Objekts verwenden und das Ergebnis „true“ ist, bedeutet dies, dass das Objekt eine Instanz des angegebenen Typs ist. Der Compiler konvertiert das Objekt jedoch nicht automatisch in den angegebenen Typ, sodass eine Umwandlung erforderlich ist. Beim Casting handelt es sich um die Konvertierung eines Objekts von einem Typ in einen anderen. Wenn Sie nach Verwendung des Operators „instanceof“ feststellen, dass es sich bei dem Objekt um eine Instanz des angegebenen Typs handelt und Sie mit diesem Typ arbeiten möchten, müssen Sie eine Konvertierung des Umwandlungstyps durchführen.

Instanz des Operators in Java Instanz des Operators in Java Sep 01, 2023 pm 08:01 PM

Dieser Operator wird nur für Objektreferenzvariablen verwendet. Dieser Operator prüft, ob ein Objekt zu einem bestimmten Typ (Klassentyp oder Schnittstellentyp) gehört. Der Instanzoperator wird als -(Objektreferenzvariable)instanzvon(Klasse/Schnittstellentyp) geschrieben. Wenn das Objekt, auf das durch die Variable auf der linken Seite des Operators verwiesen wird, die IS-A-Prüfung des Klassen-/Schnittstellentyps auf der rechten Seite besteht, wird das Ergebnis erfolgreich sein wahr sein. Hier ist ein Beispiel – Beispiel einer Live-Demonstration publicclassTest{ publicstaticvoidmain(Stringargs[]){&nbs

See all articles