# 作用域和作用域链 # ## 1.作用域 ## 定义:函数声明时,会确定当前函数的作用域,所谓作用域就是作用的范围(地盘) 全局作用域: a. window是顶层对象,是一切函数,变量,对象的终点, b. 所以在全局范围内定义的函数或变量,它都是属于window对象的属性或方法。 c. 其作用域范 ...
分类:
编程语言 时间:
2016-12-06 03:19:56
阅读次数:
202
# 闭包 # 我的理解:面试时,先说作用域链,再说闭包产生的原因,然后是垃圾回收GC,最后说闭包。 a.一个函数内部声明的变量,就是它的私有变量. b.在javascript中特性中,函数是可以访问它所在作用域链的所有变量. c.但函数外部是不能直接访问函数内部的私有变量 D.通过函数内部再嵌套函数 ...
分类:
编程语言 时间:
2016-12-06 02:11:14
阅读次数:
172
学习js,肯定要学习作用域,js作用域和其他的主流语言的作用域还存在很大的区别。 一.js没有块级作用域。 js没有块级作用域,就像这样: js中像if,for,switch之类的语句,他们包含的代码块里面的变量,在代码块外面也能被读取,所以说,js没有块级作用域。 二.js的全局变量 js中规定, ...
分类:
编程语言 时间:
2016-12-04 16:57:29
阅读次数:
133
js加载顺序优化 原理:在使用src 属性加载JavaScript 的过程中浏览器必须首先下载外部文件的代码,这要占用一些时间,然后,解析并运行此代码。此过程中,页面解析和用户交互是被完全阻塞的。 解决方案: ——将所有<script>标签放置在页面的底部,紧靠body 关闭标签</body>的上方 ...
分类:
编程语言 时间:
2016-12-02 07:56:42
阅读次数:
187
1、闭包:是指有权访问另一个函数作用域中的变量的函数。创建闭包的常见方式:在一个函数内部创建另一个函数。 function f(name){ return function(object){ var value = object[name]; ... } } 加粗代码是内部函数(一个匿名函数)中的代 ...
分类:
编程语言 时间:
2016-12-01 14:22:44
阅读次数:
148
1、闭包和匿名函数是两个不同的概念 闭包是指:有权访问另一个函数作用域内的变量的函数 2、创建闭包的形式: 在一个函数内部创建另一个函数 理解闭包: 函数调用过程发生的事: (1)当某个函数被调用时,会创建一个执行环境及相应的作用域链。 (2)使用arguments和其他命名参数的值来初始化函数的活 ...
分类:
Web程序 时间:
2016-11-28 19:34:55
阅读次数:
165
【js预解析机制】先来说说js的解析机制吧,浏览器在解析js代码时是从上到下解析的。解析顺序如:(1)预解析 找var和function(2)逐行代码解析 表达式 函数调用 fn1()函数内部再发生{ (1)预解析 (2)逐行代码解析}解析:由子级到父级寻找变量,称作用域链如:函数参数,为局部变量 ...
分类:
Web程序 时间:
2016-11-27 06:21:58
阅读次数:
274
闭包: 这个术语非常古老,是指函数变量可以被隐藏于作用域链之内,因此看起来是函数将变量“包裹”了起来。 作用域链: 我们将作用域链描述为一个对象列表,不是绑定的栈。每次调用JavaScript函数的时候,都会为之创建一个新的对象用来保存局部变量,把这个对象添加至作用域链中,当函数返回的时候,就从作用 ...
分类:
编程语言 时间:
2016-11-21 14:36:47
阅读次数:
134
作用域和作用域链: 参考文章 :http://www.cnblogs.com/malinlin/p/6028842.html http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html http://www. ...
分类:
编程语言 时间:
2016-11-19 01:35:16
阅读次数:
307
一、匿名函数1.1 匿名函数的概念? 声明一个没有函数名的函数,就是匿名函数。? 有函数名的函数就是具名函数。
看下面的代码:
/*
//这里定义了一个函数,而且没有函...
分类:
编程语言 时间:
2016-11-12 20:18:10
阅读次数:
195