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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

インスタンスオブは何をするのですか? インスタンスオブは何をするのですか? Nov 14, 2023 pm 03:50 PM

instanceof の機能は、オブジェクトが特定のクラスのインスタンスであるかどうか、またはオブジェクトが特定のインターフェイスを実装しているかどうかを判断することです。 instanceof は、オブジェクトが指定されたタイプであるかどうかを確認するために使用される演算子です。 instanceof 演算子の使用シナリオ: 1. 型チェック: オブジェクトの特定の型を判断し、異なる型に応じて異なるロジックを実行するために使用できます; 2. インターフェイスの判断: オブジェクトがインターフェイスを実装しているかどうかを判断するために使用できます。 、オブジェクトがインターフェイスを実装しているかどうかを判断するため、インターフェイスの定義は対応するメソッドを呼び出します; 3. 下方変換など。

Javaでinstanceof演算子を使用する方法 Javaでinstanceof演算子を使用する方法 May 19, 2023 am 08:16 AM

概念 1. この演算子は、オブジェクトを操作し、オブジェクトが特定のタイプ (タイプまたはインターフェース・タイプ) であるかどうかを確認するために使用されます。形式 2. 計算機の左側の変数が指すオブジェクトが演算子の右側のクラスまたはインターフェイスのオブジェクトである場合、結果は true になります。 (Objectreferencevariable)instanceof(class/interfacetype) インスタンス packagecom.verify_instanceof;publicclassTestInstanceOf{publicstaticvoidmain(String[]args){//次の 4 行のコードは、instanceof を証明するために使用されます。

インスタンス とはどういう意味ですか? インスタンス とはどういう意味ですか? Nov 20, 2023 pm 02:32 PM

Instanceof は JavaScript の演算子で、コンストラクターの "prototype" 属性がオブジェクトのプロトタイプ チェーンのどこかに現れるかどうかを検出するために使用されます。構文は "object instanceof constructionor" です。ここで、object は検出されるオブジェクト、constructor は検出されるオブジェクトです。検出するオブジェクト。チェックするコンストラクター。

Javaでinstanceofは何を意味しますか Javaでinstanceofは何を意味しますか Nov 13, 2023 pm 01:52 PM

Java では、instanceof は、オブジェクトがクラスのインスタンスであるか、クラスのサブクラスのインスタンスであるかをチェックするために使用される二項演算子です。その構文は「オブジェクト インスタンスオブ クラス」です。ここで、オブジェクトはオブジェクト引用符、クラスはクラスです名前またはインターフェイス名。

JavaScript での使用の種類 JavaScript での使用の種類 Nov 23, 2023 am 10:39 AM

JavaScript では、typeof は、特定の変数のデータ型を決定するために使用される演算子です。変数が文字列、数値、ブール値、関数、オブジェクト、または未定義のデータ型であるかどうかを判断するために使用できます。

インスタンスオブを追加しないとエラーが報告されるのはなぜですか? インスタンスオブを追加しないとエラーが報告されるのはなぜですか? Nov 13, 2023 pm 03:05 PM

その理由は次のとおりです。instanceof 演算子は、オブジェクトが特定のクラス (またはその派生クラス) のインスタンスであるかどうかを確認するために使用されます。オブジェクトがクラスのインスタンスではない場合、型を決定できず、エラーがスローされます。このエラーを回避するには、instanceof 演算子を使用するときに、オブジェクトがクラスのインスタンスであることを確認する必要があります。オブジェクトのタイプがわからない場合は、他の方法を使用してタイプを判断できます。

なぜinstanceofの後に強制的に転送する必要があるのでしょうか? なぜinstanceofの後に強制的に転送する必要があるのでしょうか? Nov 14, 2023 pm 03:43 PM

instanceof 演算子を使用してオブジェクトの型をチェックする場合、結果が true の場合、そのオブジェクトは指定された型のインスタンスであることを意味します。ただし、コンパイラはオブジェクトを指定された型に自動的に変換しないため、キャストが必要です。キャストは、オブジェクトをある型から別の型に変換する操作です。 instanceof 演算子を使用した後、オブジェクトが指定された型のインスタンスであると判断し、その型を操作したい場合は、キャスト型変換を実行する必要があります。

なぜinstanceofを使わないのか なぜinstanceofを使わないのか Nov 14, 2023 pm 04:05 PM

instanceof を使用しない理由は次のとおりです: 1. 使用しているプログラミング言語は、instanceof 演算子をサポートしていない可能性があります; 2. 他のメソッドを使用した方が要件をよりよく達成できると考えているため、場合によっては、他のメソッドを使用してオブジェクト タイプをチェックすると、より効果的である、またはニーズにより適している; 3. instanceof 演算子の使用方法に慣れていない、またはその動作が不明である; 4. 場合によっては、「instanceof」の使用が最良の選択ではない可能性があります。

See all articles