变量作用域

1:局部变量的优先级要高于同名的全局变量

var scope = "global"
function checkscope(){
    var scope=  "loacl";
    return scope;       
}
checkscope           //=>"loacl"

2:函数声明提前

<script>
    function test(o) {
        var i=0;
        if(typeof o == "object"){
            var j=0;
            for(var k=0;k<10;k++){
                console.log("k1:"+k);    //0~9
            }
            console.log("k2:"+k);         //10
        }
        console.log("j:"+j);              //0
    }
    var time = new Date();
    test(time)
</script>
<script>
    var scope = "global";
    function f() {
        console.log(scope);         //undefined
        var scope = "loacl";
        console.log(scope)         //loacl
    }
    f();
</script>

  你可能会误认为函数中的第一行会输出“global”,因为代码还没有执行到var语句声明局部变量的地方。其实不然,由于函数作用域的特性,局部变量在整个函数体始终是有定义的,也就是谁,在函数体内局部变量遮盖了同名全局变量。尽管如此,只有在程序执行到var语句的时候,局部变量才会被真正赋值。

转载于:https://www.cnblogs.com/QianBoy/p/7586655.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值