前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS作用域与作用域链

JS作用域与作用域链

原创
作者头像
剁椒鱼鳞
发布2023-05-30 10:15:57
1.5K0
发布2023-05-30 10:15:57
举报
文章被收录于专栏:前端小学生前端小学生

一、作用域

分为块级作用域、全局作用域、函数作用域

作用域就是一个独立的地盘,让变量不会外泄、暴露出去。也就是说作用域最大的用处就是隔离变量,不同作用域下同名变量不会有冲突。

二、作用域链

当前作用域没有定义的变量,这成为自由变量 。需要向父级作用域寻找(注意:这种说法并不严谨,作用域中取值,这里强调的是“创建”,而不是“调用”,切记切记,其实这就是所谓的"静态作用域"。)。

三、面试真题:

代码语言:javascript
复制
const food = "rice";
const eat = function () {
  console.log(`eat ${food}`);
};
(function () {
  const food = "noodle";
  eat(); // eat rice
})();
代码语言:javascript
复制
var food = "rice";
const eat = function () {
  console.log(`eat ${food}`);
};
(function () {
  food = "noodle";
  eat(); // eat rice
})();
console.log(`eat ${food}`); // eat noodle
代码语言:javascript
复制
var x = 10
function fn() {
  console.log(x)
}
function show(f) {
  var x = 20;
  (function () {
    f() // 10,而不是 20
  })()
}
show(fn)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档