如何使用Javascript逐步执行以下操作?

时间:2019-03-29 23:38:22

标签: javascript scope execution iife

var a;
console.log(a);

+function() {
  alert("Hello from IIFE!");
}();

console.log(a);
a = 'Hi';

控制台中的答案: 未定义 警报弹出 嗨

问题:要么a应该都未定义,要么都应该显示Hi

JavaScript如何工作?

以不同的方式执行

1 个答案:

答案 0 :(得分:0)

  1. a设置为undefined
  2. undefined已记录。
  3. 警报将立即被调用"Hello from IIFE!"
  4. undefined已记录。
  5. a设置为'Hi'

如果您将自己的文本复制粘贴到开发工具中,您会看到这种模式的差异很小。在新的控制台会话中,您将获得:

  1. 未定义
  2. 提醒
  3. 未定义
  4. '嗨'

最后一个嗨,我想你是从混乱中解脱了,它是将值分配给变量的返回值。