这是模块彼此依赖,导致加载顺序先后产生的问题。在ES6中,import语句会提升。在你这个情况中,在38_1.js中导入了38_2.js,所以在执行38_1.js之前,会先加载并执行38_2.js,而这个时候,fla和i的值还没有被赋值,所以是undefined。如果你在38_1.js中去掉import {abc } from '38_2.js'
,就不会存在这个问题。
如果还想更加深入理解这个问题,可以去了解一下javascript中的执行上下文的创建与执行过程。
(码字不易,若有用,望采纳)
因为 undefined 是一个标识符,不是保留字,所以可以被当作变量来使用和赋值, 但是这样会影响 undefined 的正常判断。表达式 void ___ 没有返 回值,因此返回结果是 undefined。void 并不改变表达式的结果, 只是让表达式不返回值。因此可以用 void 0 来获得 undefined。
void后跟一个表达式 void(expression),他会执行这个表达式,然后返回undefined
可以使用void 0来代替undefined,因为undefind不是保留字。所以在某些浏览器下,undefind的值可能会被修改。