再谈js的作用域

Posted double2014

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了再谈js的作用域相关的知识,希望对你有一定的参考价值。

再谈js的作用域

面试中遇到的题目: 题目一: var word = "hello world";  (function(){  alert(word);  var word = "hello test";  })();

效果 http://keleyi.com/keleyi/phtml/js/1.htm

 

题目二: var word ="hello world";  (function(){  alert(world);  function world(){  console.log("hello test");  }  })()

效果 http://keleyi.com/keleyi/phtml/js/1b.htm

这两段代码会发生什么?console一下,你就知道。

局部变量的优先级大于全局变量。

js编译机制 js分为编译期和运行期,编译的过程中为var声明的变量和*function*分配内存,运行期顺序执行。

var 声明的变量,只有变量声明提前。变量的初始化还在原来的位置。

使用函数声明语句的话,函数名称和函数体均提前。(函数声明语句中,函数名是一个变量名,指向函数体)

本文转载自柯乐义http://keleyi.com/a/bjad/cydygkca.htm

以上是关于再谈js的作用域的主要内容,如果未能解决你的问题,请参考以下文章

11. python入门复习教程之命名空间与作用域,再谈异常,标准库,持久化与序列化

再谈闭包

再谈类和对象

再谈闭包

再谈JavaScript中的闭包

JavaScript作用域:全局作用域局部作用域块级作用域作用域链变量提升