摘要:变量的作用域链一个变量的查找找这个变量最近定义的地方找到了就不会再继续向外找了下面用代码实例说明实例实例还是实例局部变量的误解循环由于的变量作用域实际上是函数内部,我们在循环等语句块中是无法定义具有局部作用域的变量的条件语句为了解决块级作用
变量的作用域链
一个变量的查找,找这个变量最近定义var的地方,找到了就不会再继续向外找了.
下面用代码实例说明:
实例1:
var a = 10; function show(){ console.log(a); } show(); // 10
实例2
var a = 10; function show(){ console.log(a); a = 20; } show(); // 还是10
实例3
for循环
由于JavaScript的变量作用域实际上是函数内部,我们在for循环等语句块中是无法定义具有局部作用域的变量的:
function foo() { for (var i= 0; i < 100; i++) { // } i += 100; // document.write(i); // 200 } foo();
if 条件语句
if(true){ var i = 100; } console.log(i); // 100
为了解决块级作用域,ES6引入了新的关键字let,用let替代var可以申明一个块级作用域的变量
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/78548.html
摘要:一看这二逼就是周杰伦的死忠粉看看控制台输出,确实没错就是对象。从根本上来说,作用域是基于函数的,而执行环境是基于对象的例如全局执行环境即全局对象。全局对象全局属性和函数可用于所有内建的对象。全局对象只是一个对象,而不是类。 觉得本人写的不算很烂的话,可以登录关注一下我的GitHub博客,博客会坚持写下去。 今天同学去面试,做了两道面试题,全部做错了,发过来给我看,我一眼就看出来了,因为...
摘要:下面我们就罗列闭包的几个常见问题,从回答问题的角度来理解和定义你们心中的闭包。函数可以通过作用域链相互关联起来,函数内部的变量可以保存在其他函数作用域内,这种特性在计算机科学文献中称为闭包。 写这篇文章之前,我对闭包的概念及原理模糊不清,一直以来都是以通俗的外层函数包裹内层....来欺骗自己。并没有说这种说法的对与错,我只是不想拥有从众心理或者也可以说如果我们说出更好更低层的东西,逼格...
摘要:我们再来看一下第一段代码小红小黑脚本出错脚本出错在这段代码中变量与函数,都拥有局部作用域。作用域链的最前端,始终都是当前执行代码所在的作用域的变量对象。 个人博客原址 无论什么语言中,作用域都是一个十分重要的概念,在JavaScript中也不例外,作用域定义了变量或者函数有权访问的范围,决定了它们各自的行为。要理解JavaScript中的作用域首先就要知道:在let出现之前,JS中变...
摘要:这里一共说了三种作用域,其实可以说是两种一种是全局作用域,而是局部作用域函数作用域块级作用域,块级作用域概念又包括了函数作用域。 作用域: 变量所在的上下文,指的是变量在哪些地方可以访问 对于JavaScript来说有全局作用域但是没有块级作用域,在ES6中引入了关键字let可以生成块作用域.见以下代码: var value = true if (value) { var age ...
摘要:所以觉得把这个执行的详细过程整理一下,帮助更好的理解。类似的语法报错的如下图所示三预编译阶段代码块通过语法分析阶段之后,语法都正确的下回进入预编译阶段。另开出新文章详细分析,主要介绍执行阶段中的同步任务执行和异步任务执行机制事件循环。 一、概述 js是一种非常灵活的语言,理解js引擎的执行过程对于我们学习js是非常有必要的。看了很多这方便文章,大多数是讲的是事件循环(event loo...
阅读 471·2023-04-25 17:26
阅读 1495·2021-08-05 09:58
阅读 1958·2019-08-30 13:17
阅读 942·2019-08-28 17:52
阅读 1060·2019-08-26 18:27
阅读 1412·2019-08-26 14:05
阅读 3607·2019-08-26 14:05
阅读 1585·2019-08-26 10:45