美文网首页
js编译执行过程 和词法作用域

js编译执行过程 和词法作用域

作者: 练习时长2年半的个人练习生 | 来源:发表于2020-06-29 16:43 被阅读0次
    分为两个阶段
    • 编译器对代码进行词法分析,将代码变为可运行的代码.
    • js引擎执行(赋值等过程都是在这个阶段完成的)
    作用域的概念

    代码执行时,变量的访问规则就叫作用域.

    词法作用域.

    词法作用域意味着 作用域是在书写代码时函数声明的位置来决定的.词法分析阶段就能知道全部标识符在哪里以及如何声明的.

    js的作用域划分

    js的作用域是词法作用域, 它的作用域只能通过function函数作用域 和 {}块级作用域来划分.当然还有全局作用域

       var str = 'global';
        function say(){
            console.log(str)
        }
        function doSomeThing(){
            let str  = "函数内部作用域";
            say()
        }
        doSomeThing() //global
    

    因为say函数是写在全局作用域内的.它本身作用域内又没有这个变量.所以他会在它定义的作用域往上找. 就找到了全局的 global (和执行位置无关)

    相关文章

      网友评论

          本文标题:js编译执行过程 和词法作用域

          本文链接:https://www.haomeiwen.com/subject/xboofktx.html