函数预解析及作用域

1.函数预解析

        声明式的函数预解析时,整个函数将被提升到script标签内的最上面

        赋值式的函数预解析时,将赋值的变量提升到script标签内的最上面,后面的赋值函数忽略

// 声明式
function qj() {
     console.log("请进")
     }
     qj()
 
 
// 赋值式
var cq = function() {
    console.log("出去")
    }
    cq()

 变量预解析:将声明的变量提升至script标签内的最上面  

        console.log(a) //由于变量的预解析,所以此处打印的是undefined
        var a = 10
        console.log(a) //由于上面已经进行赋值,所以此处打印的是10

案例

        function test() {
            // 用来计算两个数的和
            var result = 10 + 20
                // console.log(result)
            console.log(a)
            return result
        }
        test()
        console.log(test())
        console.log(result)

当变量名与函数名重复是会出现报错

 var b = 10
 console.log(b)
        //报错,原因是变量名与函数名重复
 function b() {
 console.log("aa")
 }
 b()

 2.作用域:全局作用域和局部作用域

全局作用域:整个页面,只有当页面关闭时,全局作用域才会失效

局部作用域:全局作用域中又划分出小规范的作用域,函数内部可以创建局部作用域,到目前为止,也只有函数内部可以创建局部变量

全局变量可以在函数内部进行访问,但是函数内部定义的变量不能在函数外部进行访问
 

function test_1() {
            var a = "ls" //变量采取的是就近原则
                //console.log(a)
            function test_2() {
                a = "ww"
            }
            //console.log(a)
        }
        test_1()
            // console.log(a)

        function test_3() {
            num = 100
        }
        test_3()
        console.log(num) //自动转换成全局变量
        var sum = 300

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值