ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript がオブジェクトをログに記録するときに「[object Object]」と表示されるのはなぜですか?

JavaScript がオブジェクトをログに記録するときに「[object Object]」と表示されるのはなぜですか?

DDD
DDDオリジナル
2024-12-13 18:53:12475ブラウズ

Why Does JavaScript Display

JavaScript の "[object Object]" について

JavaScript では、値をアラートまたはログに記録しようとすると、文字列 "[object Object]" が表示されることがあります。オブジェクト。この文字列はオブジェクトのデフォルトのシリアル化を表し、オブジェクトのタイプについての情報を提供します。

なぜ「[object]」ではなく「[object Object]」なのでしょうか?

一部のプログラミング言語とは異なり、JavaScript はにはさまざまなオブジェクトタイプがあります。各型は、そのコンストラクター関数によって識別されます。次の例は、さまざまなオブジェクト タイプのシリアル化を示しています。

function stringify(x) {
    console.log(Object.prototype.toString.call(x));
}

stringify(function () {}); // [object Function]
stringify([]); // [object Array]
stringify(/x/); // [object RegExp]
stringify(new Date); // [object Date]
stringify({}); // [object Object]

JavaScript では、「オブジェクト」(小文字) という用語は一般に、物の構造的な性質を指します。ただし、「オブジェクト」について具体的に説明する場合、開発者は通常、「オブジェクト オブジェクト」(大文字) を意味します。これは、これらのオブジェクトのコンストラクター関数が Object と呼ばれるためです。

関数からオブジェクトを返す

提供されたコードでは、関数 whatIsVisible() は表示要素を表すオブジェクトを返します。戻り値を警告しようとすると、JavaScript はオブジェクトを「[object Object]」にシリアル化します。これはオブジェクト オブジェクトであるためです。

シリアル化された文字列ではなく実際の要素を表示するには、戻り値を返すように関数を変更できます。代わりに要素の ID:

function whichIsVisible() {
    if (!.is(':hidden')) return .attr('id');
    if (!.is(':hidden')) return .attr('id');
}

以上がJavaScript がオブジェクトをログに記録するときに「[object Object]」と表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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