作用域的作用
作用域是结构化编程语言的一种感念。(决定了变量的可见范围和生命周期,是的代码清晰,易懂),垃圾回收的基本单元。
特点:
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这个变量的,也就是它没有定义或者说是它定义了,但是没有初始化。