摘要: JavaScript函数的作用域链分为定义时作用域链和运行时作用域链;函数被定义的时候,它有一个属性[[scope]]标明它的定义作用域链,定义时作用域链[[scope]]遵守这样的规则:一个函数的定义时作用域链[[scope]]总是它所在的外部函数的执行时作用域链;全局函数的定义作用域链只包含wi... 阅读全文
posted @ 2014-08-14 18:04 disneyland 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名:1 对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给wind... 阅读全文
posted @ 2014-08-14 17:41 disneyland 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 一、Javascript的变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分)。切记,是function块,而for、while、if块并不是作用域的划分标准,可以看看以下几个例子: 二、Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括... 阅读全文
posted @ 2014-08-14 12:20 disneyland 阅读(159) 评论(0) 推荐(0) 编辑
摘要: JS中变量申明分显式申明和隐式申明。var i=100;//显式申明i=100;//隐式申明在函数中使用var关键字进行显式申明的变量是做为局部变量,而没有用var关键字,使用直接赋值方式声明的是全局变量。 当我们使用访问一个没有声明的变量时,JS会报错。而当我们给一个没有声明的变量赋值时,JS... 阅读全文
posted @ 2014-08-14 12:09 disneyland 阅读(814) 评论(0) 推荐(0) 编辑