在Javascript中,如果一个对象有一个字符键,那么该键的长度可以是1以外的任何值

In Javascript, if an object has a key which is a character, can the .length of that key ever be anything other than 1?

本文关键字:任何值 如果 Javascript 一个对象 有一个 字符      更新时间:2023-09-26

假设我们有一个字符串unknownStr,它的未知值不是undefined也不是null

假设我们有这样的代码:

var chrArray = [];
var keyValObject = {};
var keyLength;
for (var i = 0; i < unknownStr.length; i++) { chrArray.push(unknownStr[i]); }
for (var i = 0; i < chrArray.length; i++) { keyValObject[chrArray[i]] = "foo"; }
for (var key in keyValObject) { keyLength = key.length; }

keyLength是否可能具有1以外的值?

是的,这是可能的,可以如下所示

Object.prototype.longKey = "foo";

现在,所有对象都将具有属性longKey,包括keyValObject。因为您没有将for循环中的key值限制为hasOwnProperty,所以它最终会看到长度大于1 的longKey