Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Adakah simbol es6 jenis asas?

Adakah simbol es6 jenis asas?

青灯夜游
Lepaskan: 2022-03-08 17:00:02
asal
2607 orang telah melayarinya

simbol es6 ialah jenis asas. Simbol ialah jenis data asas baharu yang diperkenalkan dalam es6, yang mewakili nilai unik fungsinya adalah untuk mengelakkan konflik nama atribut dan memastikan setiap nama atribut dalam objek adalah unik.

Adakah simbol es6 jenis asas?

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

Symbol ialah jenis data asas, jenis data baharu yang diperkenalkan dalam ES6.

Tujuannya adalah untuk

mencegah konflik nama atribut dan memastikan setiap nama atribut dalam objek adalah unik.

let s1 = Symbol('foo');
let s2 = Symbol('foo');

s1 === s2 // false
Salin selepas log masuk
Jenis simbol boleh mempunyai parameter rentetan yang mewakili

penerangan contoh Simbol. Jadi dua contoh jenis Simbol dengan penerangan yang sama adalah tidak sama.

Cara menggunakan

let s = Symbol();

// 第一种写法
let a = {};
a[mySymbol] = 'Hello!';

// 第二种写法
let a = {
  [mySymbol]: 'Hello!'
};

// 第三种写法
let a = {};
Object.defineProperty(a, mySymbol, { value: 'Hello!' });

// 以上写法都得到同样结果
a[mySymbol] // "Hello!"
Salin selepas log masuk
dalam objek Ia boleh dilihat bahawa untuk menggunakan jenis Simbol sebagai nama atribut, anda mesti menggunakan

. Jika tidak digunakan, ia mewakili rentetan yang sama dengan nama pembolehubah sebagai nama atribut. []

Simbol digunakan sebagai nama atribut Apabila melintasi objek, atribut tidak akan muncul dalam gelung

, for...in, dan juga tidak akan disertakan dalam for...of, <. . Kaedah ini mengembalikan tatasusunan yang ahlinya adalah semua nilai Simbol yang digunakan sebagai nama harta objek semasa. Object.keys()Object.getOwnPropertyNames()JSON.stringify()Cara menggunakan nilai Simbol yang sama

Menggunakan kaedah

, pembolehubah yang dibuat dengan parameter yang sama akan mempunyai nilai yang sama. Kerana pembolehubah Simbol yang dibuat menggunakan kaedah ini akan mendaftarkan parameter secara global. Parameter pembolehubah yang dicipta oleh Object.getOwnPropertySymbols() tidak akan didaftarkan secara global.

Gunakan

untuk mencari nama parameter yang didaftarkan secara global dalam pembolehubah.
Symbol.for("bar") === Symbol.for("bar")
// true
Salin selepas log masuk

Nilai atribut terbina dalam simbol Symbol.for()Symbol()

: Apabila objek lain menggunakan operator
let s1 = Symbol.for("foo");
Symbol.keyFor(s1) // "foo"

let s2 = Symbol("foo");
Symbol.keyFor(s2) // undefined
Salin selepas log masuk
, mereka akan menggunakan kaedah dalaman yang ditunjukkan oleh nama atribut.

Symbol.keyFor()

Symbol.hasInstanceinstanceof

Symbol.isConcatSpreadable

Symbol.species

Symbol.match

Symbol.replace

Symbol.search

Symbol.split

Symbol.iterator

Symbol.toPrimitive【Cadangan berkaitan:

tutorial video javascript

, Symbol.toStringTagbahagian hadapan web

]

Atas ialah kandungan terperinci Adakah simbol es6 jenis asas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan