再谈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

相关文章:

  • 2021-12-20
  • 2022-12-23
  • 2021-05-04
  • 2021-04-29
  • 2022-12-23
  • 2021-11-30
  • 2022-12-23
猜你喜欢
  • 2021-06-30
  • 2022-12-23
  • 2021-12-11
  • 2022-02-09
  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案