参考:
我搜索了很多链接,但似乎没有人能够具体解释它.任何人都可以给一些代码(使用javaScript)来解释它吗?
我正在阅读ECMAScript 2015规范,并且多次使用术语"LexicalEnvironment"和"VariableEnvironment".它们在表23中定义:
LexicalEnvironment:标识用于解析此执行上下文中的代码所做的标识符引用的词法环境.
VariableEnvironment:标识其EnvironmentRecord包含由此执行上下文中的VariableStatements创建的绑定的词法环境.
执行上下文的LexicalEnvironment和VariableEnvironment组件始终是Lexical Environments.创建执行上下文时,其LexicalEnvironment和VariableEnvironment组件最初具有相同的值.
所以,我想知道它们将如何不同,以及每种情况都会被使用.有人可以解释一下吗?
我发现(webpack)包(输出)结果中有很多不必要的重复,具体来说,它们都是帮助器(如classCheck,objectSpread(由于对象扩展插件)。
所以,我想减少重复。如果它是一个库,当然,我将使用转换运行时插件(请参阅runtime-corejs3)来执行此操作。但是现在这是一个应用程序,那么正确的方法是什么?
因此我很困惑,因为该transfrom-runtime插件被推荐用于库(并且是为了整个减少。即core-js,regenerator和助手)。但在这里我只想减少助手重复,而不是其他重复,因为这是由babel/env.
所以在这里我想问/讨论的问题是是否有必要减少应用程序中的helpers重复,如果是,以及如何减少?
另一个问题是,core-js/modules/es.promise.js和 core-js-pure/modules/es.promise.js代码完全一样,主要区别只是前者有全局污染?如果是这样,为什么core-js不使用(直接导入)core-js-pure来填充然后将其添加到全局?IMO,这将大大减少重复,因为现在库使用transform-runtime(最终core-js-pure)但应用程序使用preset-env(最终core-js),应用程序和库之间没有共享/可共享代码,对吗?
一、打开chrome devtools,触发 
然后将鼠标悬停在第一个div,你会发现如果去掉transition属性,只重绘第一个div,但是如果添加transition属性,整个页面都会重绘,有没有人可以解释一下?
div {
width: 100px;
height: 100px;
}
div:first-child {
margin-bottom: 100px;
}
div:first-child:hover {
transform: scale(1.4);
transition: all .3s;
background-color: red;
}Run Code Online (Sandbox Code Playgroud)
<div> 11111111111111111 </div>
<div> 222222222222222222 </div>Run Code Online (Sandbox Code Playgroud)
JSFiddle 演示:https ://jsfiddle.net/heaven_xz/4q2kgr2g/5/