Javascript es6副作用含义的导入

Javascript es6副作用含义的导入,javascript,import,ecmascript-6,Javascript,Import,Ecmascript 6,我正在读es6导入声明。语法: import "my-module"; 将仅为副作用导入整个模块,而不导入任何绑定。我不知道副作用是什么意思。我一直在使用angular时说import“angular”。Angular绑定到窗口,但不返回对象。因此,我不确定这是否会被称为副作用。当您需要导入一些不导出任何内容但执行其他操作的内容时,这是一个仅具有副作用的模块。导入它只是为了初始化它 纯模块和非纯模块 如果将模块视为函数,那么只通过导出其内容来影响作用域的模块就像总是返回相同内容的函数(没有参数

我正在读es6导入声明。语法:

import "my-module";

将仅为副作用导入整个模块,而不导入任何绑定。我不知道副作用是什么意思。我一直在使用angular时说
import“angular”
。Angular绑定到窗口,但不返回对象。因此,我不确定这是否会被称为副作用。

当您需要导入一些不导出任何内容但执行其他操作的内容时,这是一个仅具有副作用的模块。导入它只是为了初始化它

纯模块和非纯模块

如果将模块视为函数,那么只通过导出其内容来影响作用域的模块就像总是返回相同内容的函数(没有参数的纯函数)。无论导入react 15.01多少次,都会得到一个包含相同方法的对象

具有副作用的模块是一个以其他方式改变范围然后返回某些内容的模块,其效果并不总是可预测的,并且可能会受到外力的影响(非纯功能)。例如,polyfill可能不会执行任何操作,因为它发现它启用的功能已受浏览器支持

副作用示例:

import './overrides/extra';
  • Angular绑定到全局
    窗口
    对象,但不导出 什么都行
  • 一种polyfill,在不支持ES6的浏览器中启用ES6功能 支持他们,就像是一个副作用
  • 许多jQuery插件将自己附加到全局jQuery对象
  • 在后台运行、监视用户交互并将数据发送到服务器的分析模块
  • 如果您不使用CSS模块,则在webpack中导入CSS可能会被视为副作用

当您需要导入不导出任何内容但执行其他操作的内容时,这是一个仅具有副作用的模块。导入它只是为了初始化它

纯模块和非纯模块

如果将模块视为函数,那么只通过导出其内容来影响作用域的模块就像总是返回相同内容的函数(没有参数的纯函数)。无论导入react 15.01多少次,都会得到一个包含相同方法的对象

具有副作用的模块是一个以其他方式改变范围然后返回某些内容的模块,其效果并不总是可预测的,并且可能会受到外力的影响(非纯功能)。例如,polyfill可能不会执行任何操作,因为它发现它启用的功能已受浏览器支持

副作用示例:

import './overrides/extra';
  • Angular绑定到全局
    窗口
    对象,但不导出 什么都行
  • 一种polyfill,在不支持ES6的浏览器中启用ES6功能 支持他们,就像是一个副作用
  • 许多jQuery插件将自己附加到全局jQuery对象
  • 在后台运行、监视用户交互并将数据发送到服务器的分析模块
  • 如果您不使用CSS模块,则在webpack中导入CSS可能会被视为副作用

将以下代码视为示例代码。 当您尝试导入某些内容时,它不会导出任何内容,而是执行许多操作并覆盖您现有的代码(如果有),因此这是副作用

import Ember from 'ember';
Ember.RSVP.configure('onerror', function(error) {
    ....
});
app.js:

import './overrides/extra';

以下面的代码为例。 当您尝试导入某些内容时,它不会导出任何内容,而是执行许多操作并覆盖您现有的代码(如果有),因此这是副作用

import Ember from 'ember';
Ember.RSVP.configure('onerror', function(error) {
    ....
});
app.js:

import './overrides/extra';
以下是一个例子:

//a.js
function print1()
{
  console.log("export print1 is working");
}

function print2()
{
  console.log("non-export print2 is working");
}

print1();
print2();

//b.js
import "a.js";
当您运行“b.js”时,您将看到打印的消息,这些消息称为

副作用

.

以下是一个示例:

//a.js
function print1()
{
  console.log("export print1 is working");
}

function print2()
{
  console.log("non-export print2 is working");
}

print1();
print2();

//b.js
import "a.js";
当您运行“b.js”时,您将看到打印的消息,这些消息称为

副作用