JavaScript是解释性语言:解释一行,执行一行。 JS运行三部曲: 词法分析: 虽然JS是解释一行执行一行,但在解释执行之前会首先通篇扫描一遍查看有没有低级语法错误。 预编译: 发生在代码执行的前一刻。 解释执行: 开始执行代码,解释一行执行一行。 预编译初识: var a = 123; console.log(a); //控制台打印123; console.log(a); var a = 123; //控制台打印undefined; console.log(a); //报错!Uncaught ReferenceError: a is not defined!(因变量a没定义) 这