Если это ваш фактический код, в третьей строке длина слова указывается с ошибкой как длина:
var len = arr.lenght;
Я ожидал бы, что это скомпилируется, но он установит len
равным undefined
, что предотвратит выполнение вашего тела цикла. Это приведет к тому, что arr.foo
a.k.a. arr["foo"]
будет undefined
, как вы видите в своем выводе.
Также вы передаете "arr"
в ArrayToEnum()
, когда ваш массив в предыдущей строке называется a
, а не arr
.
Общей темой здесь является то, что когда вы начинаете говорить о переменной, которую вы еще не определили. JavaScript «услужливо» определяет его, а не говорит, что его еще не существует.
Я пробовал это в консоли Chrome JS и получал "ошибку ссылки", пока не исправил проблему "a" / "arr". Как только это было исправлено, я получил "неопределенный", как вы описываете.
Когда я фиксирую «длину», в бинго выводится «0».