js学习笔记-第二章变量、作用域和内存问题-执行环境和作用域
2018-12-06 12:54
363 查看
//执行环境:执行环境(execution context,为简单起见,有时也称为“环境”)是 JavaScript 中最为重要的一个概念。执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为
//变量对象:。每个执行环境都有一个与之关联的变量对象(variable object),
//作用域链:当代码在一个环境中执行时,会创建变量对象的一个作用域链(scope chain)。作用域链的用途,是保证对执行环境有权访问的所有变量和函数的有序访问。
//全局执行环境的变量对象始终都是作用域链中的最后一个对象
//最大的执行环境:window对象;当网页关闭或浏览器关闭时才会被注销
//示例 //解析:执行环境:window、changecolor() //变量对象:window:color、changeColor() // changeColor:无 /*var color = "blue"; function changeColor() { if(color === "blue") { color = "red"; } else { color = "blue"; } } changeColor(); alert("Color is now " + color)*/ //执行环境的类型有两种:最大的window环境和局部函数 //延长作用域链 with try...catch() //with //分析:with的作用,就是简化对象的使用,with代码块的内部,首先每个变量被当做局部变量,如果找不到该变量的定义,会找是不是该对象的属性 //由于with语句块中作用域的‘变量对象’是只读的,所以在他本层定义的标识符,不能存储到本层,而是存储到它的上一层作用域。 //延长作用域,所以可以返回url /* function bulider(){ var qs = "?debug=true"; with(location){ var url=href+qs;//url属于上一层环境的变量对象 } return url; //相当于 //var url=window.location.href+qs; }*/ //没有块级作用域,只有全局作用域和函数作用域,除全局变量,和局部变量,其他变量都会被当作全局变量。 if(true){ var a="123";//if语句执行后,不会销毁,会将当前变量添加到当前执行环境中 } console.log(a);//123
相关文章推荐
- 《js高级程序设计》学习笔记--4.变量、作用域和内存问题
- JS学习笔记(二)变量、作用域及内存问题
- JavaScript高级程序设计之变量、作用域和内存问题之执行环境及作用域第4.2讲敏敏笔记
- js高程第四章 变量、作用域和内存问题------学习笔记
- JavaScript高级程序设计学习笔记--变量、作用域和内存问题
- 第4章 变量、作用域和内存问题(2)执行环境及作用域
- js笔记四:变量、作用域和内存问题
- JavaScript高级程序设计学习笔记--变量、作用域和内存问题(一) (变量、作用域)
- 四、变量、作用域及内存问题[js笔记]
- javascript学习笔记 - 变量、作用域和内存问题
- Javascript学习笔记3——变量、作用域和内存问题
- JavaScript基础学习笔记(二)--- 变量、作用域和内存问题
- JS学习笔记(五):关于$(function(){});里面的函数不执行问题
- js高级程序设计(四)变量、作用域和内存问题
- js-变量、作用域和内存问题,引用类型
- JavaScript学习日志(一):变量,作用域和内存问题
- 有关js的变量、作用域和内存问题
- 深入学习JS执行--创建执行上下文(变量对象,作用域链,this)
- Javascript高级程序设计第二版第四章--变量,作用域及内存问题--笔记
- Javascript学习笔记04 ——变量,作用域,内存问题