前端训练营 Day 8
JavaScript 基础
JavaScript 是一门动态弱类型语言,现主要用于前端开发。
对于前端页面,JavaScript 运行在浏览器中,单线程运行,边解析边运行。JavaScript 的单线程运行保证了程序的安全性,但也降低了代码执行效率。同时,JavaScript 是一门面向对象且采用函数式编程的语言,JavaScript 中函数也可以作为一个对象来处理。
JavaScript 中变量的作用域包括全局作用域、函数作用域和块级作用域,这取决于变量声明变量的位置与方式。需要注意的是,使用一个变量的效果取决于“当前环境”,应谨慎地在函数内使用作用域不是该函数的变量。
JavaScript 的运行
JavaScript执行时,首先进行词法分析与语法分析,得到AST(Abstract Syntax Tree,抽象语法树),再右字节码编译得到机器码,最后浏览器执行机器码。
同时,在语法分析的时候还会生成执行上下文,达到动态执行的效果。执行上下文分为全局执行上下文与函数执行上下文,全局执行上下文在代码开始执行时初始化一次,函数执行上下文在执行函数时初始化。
JavaScript 的执行环境包括词法环境、变量环境与 Outer,词法环境描述了函数、语句的逻辑关系;变量环境只存储 var 变量;Outer 是一些指向外部变量的指针。
JavaScript 进阶
闭包
JavaScript 的闭包是指一个函数可以使用另一个函数里声明的的变量,此时被使用的变量不能随便被回收。有时这种特性可以实现一些特殊效果,但使用不当会导致资源浪费。
本文若有不足之处,欢迎纠正(≧^.^≦)喵~ 我的其他笔记,可在掘金或 Github( github.com/DoudiNCer/I… )阅读