随笔分类 - 作用域
摘要:<script type="text/javascript"> var x = 10; function fn() { console.log(x); } function show(f) { var x = 20; f(); } show(fn); </script> <script type="
阅读全文
摘要:<body> <!-- 1. 区别1 * 全局作用域之外,每个函数都会创建自己的作用域,作用域在函数定义时就已经确定了。而不是在函数调用时 * 全局执行上下文环境是在全局作用域确定之后, js代码马上执行之前创建 * 函数执行上下文是在调用函数时, 函数体代码执行之前创建 2. 区别2 * 作用域是
阅读全文
摘要:<body> <!-- 1.依次输出什么? gb:undefined fb:1 fb:2 fb:3 fe:3 fe:2 fe:1 ge:1 2.整个过程中产生了几个执行上下文? --> <script> console.log('global begin:' + i ) var i = 1 foo(
阅读全文
摘要:先执行变量提升, 再执行函数提升 <body> <!-- 1. 变量声明提升 * 通过var定义(声明)的变量, 在定义语句之前就可以访问到 * 值: undefined 2. 函数声明提升 * 通过function声明的函数, 在之前就可以直接调用 * 值: 函数定义(对象) 3. 问题: 变量提
阅读全文
摘要:执行上下文对象什么时候产生?函数调用的时候产生 1.在全局代码执行前,js引擎就会创建一个栈来存储管理所有的执行上下文对象 2.在全局执行上下文(window)确定后,将其添加到栈中(压栈) 3.在函数执行上下文创建后,将其添加到栈中(压栈) 4.在当前函数执行完后,将栈顶的对象移除(出栈) 5.当
阅读全文
摘要:<!-- 1.代码分类(位置) 全局代码 函数(局部)代码 2.全局执行上下文 在执行全局代码前将window确定为全局执行上下文 对全局数据进行预处理 var定义的全局变量==》undefined,添加为window的属性 function声明的全局函数==》赋值(fun),添加为window的方
阅读全文
摘要:理解 就是一块“地盘”,一个代码段所在的区域 它是静态的(相对于上下文对象,上下文是动态产生的,函数执行前),在编写代码时就确定了。 但是你调用两个fn(),作用域就一个,在你写代码时就确定了 分类 全局作用域 函数作用域 没有块作用域(ES6有了)if(true){ var a = 3} 作用 隔
阅读全文
摘要:<body> <!-- 1. 理解 * 多个上下级关系的作用域形成的链, 它的方向是从下向上的(从内到外) * 查找变量时就是沿着作用域链来查找的 2. 查找一个变量的查找规则 * 在当前作用域下的执行上下文中查找对应的属性, 如果有直接返回, 否则进入2 * 在上一级作用域的执行上下文中查找对应的
阅读全文
摘要:执行环境(Execution Context)的含义 JavaScript代码执行的环境非常重要,而执行环境可以归纳为以下三种: 全局代码(Global Code) - 代码首次执行时的默认环境 函数代码(Function Code) - 程序执行到函数体内时 Eval函数代码(Eval Code)
阅读全文

浙公网安备 33010602011771号