在函数体内操作某个变量时,如何明确这个变量操作的是全局变量还是局部变量? 向上查找,如果在函数体内找到了与该变量相同的变量名,并且这个变量时局部变量,说明该行操作的变量也是局部变量。 向上查找时,如果在函数体内没有找到和该变量相同名称的变量,继续向函数体外查找,如果找到说明该行操作的变量是全局变量。 ...
分类:
其他好文 时间:
2020-03-14 01:02:31
阅读次数:
45
JavaScript中作用,作用域链和闭包详解一、作用域在js中有全局变量和局部变量之分:比如vara=1;functionsum(){varb=1console.log(b)//1console.log(a)//2}sum()console.log(a)//3console.log(b)//4例子中a是全局变量,b是局部变量(定义在函数内部,只能在函数内部访问)所以第1行正确函数内部也能访问全局
分类:
编程语言 时间:
2020-03-08 09:36:09
阅读次数:
59
原型:所有的函数都有一个特殊的属性prototype(原型),prototype属性是一个指针,指向的是一个对象(原型对象),原型对象中的方法和属性都可以被函数的实例所共享。所谓的函数实例是指以函数作为构造函数创建的对象,这些对象实例都可以共享构造函数的原型的方法。 原型链:原型链是用于查找引用类型 ...
分类:
其他好文 时间:
2020-03-04 14:29:34
阅读次数:
56
本文介绍 C/C++ 中的存储类别。所谓的“存储类别”究竟是什么意思? 存储类别主要指在内存中存储数据的方式,其大致牵涉到变量的三个方面 —— 作用域、链接性和存储期,也就是说这三个方面决定了存储类别。下面先解释这三个概念,再介绍在 C/C++ 中的表示形式。 存储类别定义 + 作用域 (scope ...
分类:
编程语言 时间:
2020-03-02 21:02:26
阅读次数:
98
作用域与作用域链 ① 作用域属于一个函数,一个函数产生了不一样的作用域 ② 函数名.[[scope]] 函数的隐式属性 ③ [[scope]] 指的就是作用域,其中存储了运行期的上下文的集合,而这一集合就是作用域链 ④ 查找变量:从作用域链的顶端依次向下查找(在那个函数里面查找变量,就上那个函数的作 ...
分类:
其他好文 时间:
2020-02-28 22:25:16
阅读次数:
47
在JS代码执行之前会首先创建一个全局作用域,里面有所有的定义的变量。 在函数定义的时候也会创建一个函数的作用域,作用域中包含了该函数中所定义的变量。 具体还没有理解很清楚,感觉作用域和执行上下文很像。 就是当在函数执行的代码中使用到某个变量的时候,它首先会在自己的作用域中找该变量,如果找不到就去上一 ...
分类:
Web程序 时间:
2020-02-01 12:58:35
阅读次数:
82
作用域链解析器通过创建变量对象(Variable Object)来执行你的代码,VO 在函数体内也会创造 ,函数体内的 VO 我们称之为活动对象(Active Object)。举个例子:var a = 10;function b (c, d) { var x = 1;}对应的 VOVO: { a: ...
分类:
其他好文 时间:
2020-01-30 21:26:51
阅读次数:
64
DOM事件流: 1、事件冒泡 2、事件捕获 DOM2事件流: 1、事件捕获阶段 2、处于目标阶段 3、事件冒泡阶段 DOM3事件 事件处理程序: 1、HTML事件处理程序: 例一:<input type="button" value="Click Me" onclick="alert('Clicke ...
分类:
编程语言 时间:
2020-01-27 17:32:56
阅读次数:
77
1.执行环境 --> 代码自上而下执行的环境,定义变量与函数的行为,每一个执行环境都有关联的 变量对象, 1.1全局执行环境 --> 浏览器的全局执行对象是window (页面关闭 执行环境销毁) 2.1函数执行环境 --> 刚进入函数时,函数的环境被推入环境栈中,在执行之后,栈将其环境弹出,把控制 ...
分类:
编程语言 时间:
2020-01-23 18:12:52
阅读次数:
97
要想了解JS作用域问题,就要先了解浏览器的JS解析器的工作方式,当浏览器读到script脚本代码时,JS解析器便开始工作。其工作步骤主要分为两部分: JS解析器: 1.“找一些东西”(预解析):var function 参数 例: alert(a); //undefined var a=1; ale ...
分类:
编程语言 时间:
2020-01-23 09:47:13
阅读次数:
90