有关函数的执行环境和作用域

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>


</body>
</html>
<script>
    //代码执行:先生成一个执行环境,再执行
    //全局作用域(全局变量):
    //1,最外层函数和在最外层函数外面定义的变量拥有全局作用域,如下的例子:sum=10, test, a=1
    //函数本身也是一个特殊的变量,其名字就是函数名字
    //2,未定义直接赋值的变量自动声明为拥有全局作用域  -- 比如 all1 all2
    //3,所有window对象的属性拥有全局作用域,例如:window对象的内置属性都拥有全局作用域,例如window.name、window.location、window.top等
    //我们也可以通过如下方式定义一个全局变量:window.name=11
    //执行环境类似一个表格:第一行放置全局变量,第二行放置局部变量
    //变量搜索机制:先搜索局部变量,如果没找到,搜索全部变量
//    第一行:sum, test, a
//    第二行:a, foo
    /*看看函数的执行*/
    /*a:由于变量声明提升,这里a变量是存在的,但是是undefined*/
    var sum =0;
    var a = 10
    all1 = 1000;
    function test() {
        //这个时候由于变量声明提升,a变量已经声明,并且值是undefined
        console.log(a);
        all2 = 200;
        //foo是一个函数,解析的时候会提升,所以能够访问到
        console.log(foo());
        /*如果省略下面这句 输出结果是什么*/
        //var a =1;
        function foo() {
            return 2;
        }
    }
    test();
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值