变量和变量提升

91 阅读1分钟
var b = 10;
(function b() {
  //'use strict'
  b = 20;
  console.log(b);
})();
//打印结果 ƒ b(){ b = 20; console.log(b); }

1.函数表达式与函数声明不同,函数名只在该函数内部有效,并且此绑定是常量绑定。

2.对于一个常量进行赋值,在 strict 模式下会报错,非 strict 模式下静默失败。

3.IIFE(Immediately Invoked Function Expression立即调用函数表达式)中的函数是函数表达式,而不是函数声明。

(函数定义表达式中带函数名称的,函数名称只能作为常量在函数体内访问,不可以被重新赋值的,非严格模式下静默失败,严格模式下报错;)

0转存失败,建议直接上传图片文件

www.cnblogs.com/xianshenglu… *****

变量提升:函数及变量的声明都将被提升到函数的最顶部。通常指的是变量声明 var 和函数声明 function fun() {...}

变量提升跟执行上下文有关

www.cnblogs.com/Trista-l/p/…

blog.csdn.net/qq_31947477…

juejin.cn/post/700722… 这个好

执行上下文、作用域链、闭包