当前位置: 首页 > news >正文

作用域理解

概念:它是指对某一变量和方法具有访问权限的代码空间, 在JS中, 作用域是在函数中维护的。表示变量 或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境。

ES5的作用域只有两种:全局作用域和局部作用域

全局作用域

var a=1; //全局作用域
function fn1(){console.log(a)
};
fn1()

局部作用域

function fn1(){var a=1;   //局部作用域
};
fn1();
console.log(a);

全局变量和局部变量同名的坑

(1)在全局变量和局部变量不同名时,其作用域是整个程序。

(2)在全局变量和局部变量同名时,全局变量的作用域不包含同名局部变量的作用域。

var a=1;
function fn1(){console.log(a)var a = 2;
};
fn1();
console.log(a); undefined  //var声明会进行预解析  提前
1   //拿到的是全局变量

经典作用域面试题

var a = 10;    
function f1(){    var b = 2 * a;    var a = 20;var c = a+1;    console.log(b);    console.log(c);    
}    
f1()NaN   // 首先内部a会提前进行预解析 变量提升  是undefined * 2  
21    // 此时预解析 a=20 + 1 
var a=10;
function test(){console.log(a);a=100;console.log(this.a);    var a;console.log(a);
}
test();undefined  // 首先test'调用' 会去内部查找变量  var a 会进行预解析  此时只是声明了 但是没赋值10  //  this 相当于拿到的全局变量 指向的是window100   // 前面赋值 a = 100

http://www.lryc.cn/news/187891.html

相关文章:

  • Stream 流式编程创建及其常用操作方法
  • Can 通信-协议
  • rustlings本地开发环境配置
  • 希尔排序:优化插入排序的精妙算法
  • 新能源电动汽车安全性能检测中采集车架号及BMS电池数据的难点
  • 函数reshape(-1,)里的-1的意思
  • 名词作形容词的用法
  • 若依微服务部署,裸服务部署、docker部署、k8s部署
  • 【置顶】关于博客的一些公告
  • Fastadmin后端表格动态展示列
  • 如何在ubnutu上安装docker
  • Mall脚手架总结(三) —— MongoDB存储浏览数据
  • Maven 引入外部依赖
  • BS EN 12104-2023 软木地砖检测
  • 用Nginx搭建一个可用的静态资源Web服务器
  • MAX30102心率血氧传感器
  • 高效解决 TypeError : ‘ numpy._DTypeMeta‘ object is not subscriptable 问题
  • Hadoop作业篇(一)
  • SpringCloud中的分布式锁用法详解(Java+Redis SETNX命令)
  • 初学者如何选择:前端开发还是后端开发?
  • 从php页面插入MySQL的数据变为乱码如何解决?
  • OpenCV防抖实践及代码解析笔记
  • 函数栈帧的创建与销毁剖析
  • 性能测试-如何进行监控设计
  • 大数据List去重
  • CentOS8.2重启网络
  • 2023年【G1工业锅炉司炉】考试题及G1工业锅炉司炉模拟考试
  • 观察者模式 行为型设计模式之七
  • 数据结构与算法之堆: Leetcode 451. 根据字符出现频率排序 (Typescript版)
  • 吃透底层:从路由到前缀树