Rumah  >  Artikel  >  hujung hadapan web  >  Apakah perbezaan antara peta dan objek dalam es6

Apakah perbezaan antara peta dan objek dalam es6

青灯夜游
青灯夜游asal
2022-11-15 18:59:443841semak imbas

Perbezaan: 1. Kunci Peta boleh berupa sebarang nilai, manakala kunci Objek mestilah String atau Simbol. 2. Kekunci dalam Peta disusun, manakala kekunci dalam Objek tidak tertib. 3. Bilangan pasangan nilai kunci Peta boleh diperoleh dengan mudah melalui atribut saiz, manakala bilangan pasangan nilai kunci Objek hanya boleh dikira secara manual. 4. Peta boleh diulang terus, tetapi Objek tidak boleh diulang secara langsung. 5. Peta menunjukkan prestasi yang lebih baik dalam senario di mana pasangan nilai kunci kerap ditambah atau dipadamkan, manakala Objek kurang cekap.

Apakah perbezaan antara peta dan objek dalam es6

Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.

Konsep Peta dan Objek

Objek

Dalam ECMAScript, Object ialah objek khas. Ia adalah objek peringkat atas itu sendiri dan juga pembina, yang melaluinya (seperti: new Object()) anda boleh mencipta objek. Kita boleh menganggap bahawa semua objek dalam JavaScript adalah contoh Objek Objek boleh diisytiharkan menggunakan kaedah literal const obj = {}

Peta

Peta Ia adalah sebuah subkelas Objek, yang boleh menyimpan apa-apa jenis data dalam cara yang teratur, menggunakan pasangan nilai kunci untuk disimpan, di mana kunci boleh menyimpan sebarang jenis Contoh peta boleh diperolehi melalui const m = new Map();.

Peta adalah serupa dengan objek dan juga merupakan koleksi pasangan nilai kunci, tetapi skop "kunci" tidak terhad kepada rentetan Pelbagai jenis nilai (termasuk objek) boleh digunakan sebagai kunci. Dalam erti kata lain, struktur Objek menyediakan surat-menyurat "nilai-rentetan", dan struktur Peta menyediakan surat-menyurat "nilai-nilai", yang merupakan pelaksanaan yang lebih lengkap bagi struktur Hash. Jika anda memerlukan struktur data "nilai-kunci", Map adalah lebih sesuai daripada Object. Peta boleh menerima tatasusunan sebagai parameter. Ahli tatasusunan ini ialah tatasusunan yang mewakili pasangan nilai kunci.

Perbezaan antara Peta dan Objek


Map Object
键的类型 一个 Map的键可以是任意值,包括函数、对象或任意基本类型。 一个Object 的键必须是一个 String 或是Symbol。
键的顺序 Map 中的 key 是有序的。因此,当迭代的时候,一个 Map 对象以插入的顺序返回键值。 一个 Object 的键是无序的。注意:自ECMAScript 2015规范以来,对象确实保留了字符串和Symbol键的创建顺序; 因此,在只有字符串键的对象上进行迭代将按插入顺序产生键。
Size Map 的键值对个数可以轻易地通过size 属性获取 Object 的键值对个数只能手动计算
迭代 Map 是 iterable 的,所以可以直接被迭代。 迭代一个Object需要以某种方式获取它的键然后才能迭代。
性能 在频繁增删键值对的场景下表现更好。 在频繁添加和删除键值对的场景下未作出优化。
Peta Objek
Jenis kunci Kunci Peta boleh berupa sebarang nilai, termasuk fungsi dan objek Atau sebarang jenis asas. Kunci Objek mestilah String atau Simbol.
Susunan kunci Kunci dalam Peta disusun. Oleh itu, apabila lelaran, objek Peta mengembalikan nilai utama dalam susunan sisipan. Kekunci Objek tidak tersusun. Nota: Sejak spesifikasi ECMAScript 2015, objek mengekalkan susunan penciptaan rentetan dan kekunci Simbol oleh itu, lelaran pada objek dengan hanya kekunci rentetan akan menghasilkan kunci dalam susunan sisipan.
Saiz Bilangan pasangan nilai kunci Peta boleh diperolehi dengan mudah melalui atribut saiz Bilangan pasangan nilai kunci Objek Ia hanya boleh dikira secara manual
Lelaran Peta boleh lelaran, jadi ia boleh diulang terus. Lelaran ke atas Objek memerlukan mendapatkan kuncinya dalam beberapa cara sebelum ia boleh diulang.
Prestasi Berprestasi lebih baik dalam senario di mana pasangan nilai kunci kerap ditambah atau dipadamkan. Tidak dioptimumkan dalam senario di mana pasangan nilai kunci kerap ditambah dan dipadamkan.

[Pembelajaran yang disyorkan: tutorial lanjutan javascript]

Atas ialah kandungan terperinci Apakah perbezaan antara peta dan objek dalam es6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn