函数作用域

作用域的作用

作用域是结构化编程语言的一种感念。(决定了变量的可见范围和生命周期,是的代码清晰,易懂),垃圾回收的基本单元。

特点:

JavaScript中的作用域和其他语言的作用域不相同,它不以花括号为一个模块。而且函数的执行顺序是从内到外

var s="123";
var d=function(){
alert(s);
}
d();

这个很简单 大家一猜就是123

var s="123";

var a=function(){

var s="456"

alert(s)
}
a();

这个也很简单,一看就是456  原因就是s重新被声明,函数执行是从内到外。

var c=function(){
alert(s)
var s="789";
}
c()

这个大家可能猜到是789,但是对不起你错了,答案是undefined,为什么呢?

代码的执行顺序是按照作用域执行的,变量是进入函数马上执行的,当函数进入,执行alert(s)时,s变量在函数内部是有的,但是在打印出对象之前,alert()是不知道有s这个变量的,也就是它没有定义或者说是它定义了,但是没有初始化。

原文地址:https://www.cnblogs.com/limit1/p/4020963.html