Adakah menggunakan undefined sebagai kunci harta menjamin bahawa hasilnya tidak akan ditentukan?
P粉504920992
P粉504920992 2024-01-16 23:42:26
0
1
457

Dalam kes mendapatkan semula sifat objek melalui pembolehubah, iaitu:

myObject[someField]

someField(它是一个字符串)有可能是未定义(可能是未初始化的字符串值的结果)。我的实验表明,对于我能想到的所有类型的对象,结果都是未定义, iaitu:

anyObject[undefined] === undefined

Adakah ini tingkah laku yang terkenal, bolehkah saya mempercayainya? Nampaknya tidak dapat mencari sesuatu dalam dokumentasi yang berkaitan, alternatif saya ialah menulis semula perkara di atas ke

someField ? myObject[someField] : undefined;

Tetapi jika ia dijamin bahawa setiap kali kita cuba mengakses harta itu undefined 时都会返回 undefined, maka saya lebih suka cara yang ringkas.

P粉504920992
P粉504920992

membalas semua(1)
P粉340980243

Tidak, lawat obj[undefined] 并不总是返回 undefined。与用作属性名称的任何值一样,undefined 将被强制转换为字符串(除非它是符号),因此它实际上会访问名为“undefined”的属性。 obj[undefined] 等价于 obj["undefined"]obj.undefined。如果存在这样的属性,它将返回属性值,例如当 obj = {undefined: true};.

Anda memang patut menulis

someField != null ? myObject[someField] : undefined;

Jika someField: 未定义 |字符串.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!