为什么我不需要导入相关模块?

时间:2019-11-05 11:01:29

标签: javascript reactjs jestjs

我是React的新手,如果我的问题听起来很蠢,对不起。我正在使用npx create-react-app创建React应用。但是我不知道幕后是怎么回事:

Q1-如果我在类似这样的组件中抛出错误:

import React, { Component } from "react";
...
render() {
    throw new Error("something went wrong");
}

我没有从任何模块导入错误名称功能,Error来自哪里?我如何直接使用它而不导入任何相关模块,如:

import Error from "XXX";

Q2-创建React应用时,有一个名为app.test.js的测试文件,该文件中有一个名为it()的函数,其名称为“

it('renders without crashing', () => {
    ...
});

那么it从哪里来?再次为什么我不需要导入任何模块即可使用它?

2 个答案:

答案 0 :(得分:4)

Error是JavaScript的默认对象,您可以详细了解here

it是jest框架的全局变量。请参见this

您不必导入框架或语言提供的全局变量和方法。

答案 1 :(得分:1)

错误是纯JS功能,这就是为什么您不需要将其导入到JavaScript引擎中的原因。

详细了解this

是测试框架的一部分。如果您使用的是Jest /茉莉花。每当您运行测试用例时,在运行测试用例的当前浏览器会话中,所有测试框架方法都是全局可用的。因此不需要。