Какова связь между узлами DOM и пространством имен javascript? - PullRequest
4 голосов
/ 15 апреля 2020

В этом примере, почему переменная foo не вызывает ReferenceError? Нет объявления переменной, но оно явно находится в области видимости после отображения DOM. Какова связь между идентификатором узла DOM и пространством имен javascript? Я запускаю это с jest.

import React from 'react';
import { render } from '@testing-library/react'

test('renders a div', () => {
  const { utils } = render(<div id="foo"/>)
  expect(foo).toBe(true)
})

Jest сообщает:

Expected: true
Received: <div id="foo" />

Я действительно sh, тест вместо этого взломает sh, потому что в моем реальном Например, я случайно передал неопределенную переменную в expect(), которая, как оказалось, разделяет имя обработанного идентификатора узла DOM.

1 Ответ

3 голосов
/ 15 апреля 2020

Элементы с идентификаторами становятся глобальными переменными

Не тот же вопрос, но ответ на ваш вопрос является еще одним вопросом SO:

- Становятся ли элементы дерева DOM с идентификаторами глобальными переменными?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...