[{"data":1,"prerenderedAt":449},["ShallowReactive",2],{"blog-\u002Fblog\u002Fjavascript_precompilation_four_steps":3},{"id":4,"title":5,"body":6,"category":435,"cover":436,"csdn":436,"date":437,"description":438,"draft":439,"extension":440,"meta":441,"navigation":184,"path":442,"seo":443,"stem":444,"tags":445,"updated":436,"__hash__":448},"blog\u002Fblog\u002Fjavascript_precompilation_four_steps.md","JavaScript 预编译的四个步骤",{"type":7,"value":8,"toc":426},"minimark",[9,13,33,36,200,204,221,225,274,278,321,325,386,411,414,422],[10,11,12],"h2",{"id":12},"函数预编译",[14,15,16,20,27,30],"ol",{},[17,18,19],"li",{},"创建 AO 对象",[17,21,22,23],{},"找形参和变量声明作为 AO 属性，值都为 ",[24,25,26],"code",{},"undefined",[17,28,29],{},"实参值和形参值统一",[17,31,32],{},"在函数体内找函数声明，值赋予 AO 函数名",[10,34,35],{"id":35},"示例",[37,38,43],"pre",{"className":39,"code":40,"language":41,"meta":42,"style":42},"language-javascript shiki shiki-themes github-dark","function hong(a, b) {\n  console.log(a)\n  c = 0\n  var c\n  a = 3\n  b = 2\n  console.log(b)\n  function b() {}\n  function d() {}\n  console.log()\n}\n\nhong(1)\n","javascript","",[24,44,45,75,87,100,109,120,131,141,153,163,173,179,186],{"__ignoreMap":42},[46,47,50,54,58,62,66,69,72],"span",{"class":48,"line":49},"line",1,[46,51,53],{"class":52},"snl16","function",[46,55,57],{"class":56},"svObZ"," hong",[46,59,61],{"class":60},"s95oV","(",[46,63,65],{"class":64},"s9osk","a",[46,67,68],{"class":60},", ",[46,70,71],{"class":64},"b",[46,73,74],{"class":60},") {\n",[46,76,78,81,84],{"class":48,"line":77},2,[46,79,80],{"class":60},"  console.",[46,82,83],{"class":56},"log",[46,85,86],{"class":60},"(a)\n",[46,88,90,93,96],{"class":48,"line":89},3,[46,91,92],{"class":60},"  c ",[46,94,95],{"class":52},"=",[46,97,99],{"class":98},"sDLfK"," 0\n",[46,101,103,106],{"class":48,"line":102},4,[46,104,105],{"class":52},"  var",[46,107,108],{"class":60}," c\n",[46,110,112,115,117],{"class":48,"line":111},5,[46,113,114],{"class":60},"  a ",[46,116,95],{"class":52},[46,118,119],{"class":98}," 3\n",[46,121,123,126,128],{"class":48,"line":122},6,[46,124,125],{"class":60},"  b ",[46,127,95],{"class":52},[46,129,130],{"class":98}," 2\n",[46,132,134,136,138],{"class":48,"line":133},7,[46,135,80],{"class":60},[46,137,83],{"class":56},[46,139,140],{"class":60},"(b)\n",[46,142,144,147,150],{"class":48,"line":143},8,[46,145,146],{"class":52},"  function",[46,148,149],{"class":56}," b",[46,151,152],{"class":60},"() {}\n",[46,154,156,158,161],{"class":48,"line":155},9,[46,157,146],{"class":52},[46,159,160],{"class":56}," d",[46,162,152],{"class":60},[46,164,166,168,170],{"class":48,"line":165},10,[46,167,80],{"class":60},[46,169,83],{"class":56},[46,171,172],{"class":60},"()\n",[46,174,176],{"class":48,"line":175},11,[46,177,178],{"class":60},"}\n",[46,180,182],{"class":48,"line":181},12,[46,183,185],{"emptyLinePlaceholder":184},true,"\n",[46,187,189,192,194,197],{"class":48,"line":188},13,[46,190,191],{"class":56},"hong",[46,193,61],{"class":60},[46,195,196],{"class":98},"1",[46,198,199],{"class":60},")\n",[10,201,203],{"id":202},"_1-创建-ao-对象","1. 创建 AO 对象",[37,205,207],{"className":39,"code":206,"language":41,"meta":42,"style":42},"AO {\n}\n",[24,208,209,217],{"__ignoreMap":42},[46,210,211,214],{"class":48,"line":49},[46,212,213],{"class":98},"AO",[46,215,216],{"class":60}," {\n",[46,218,219],{"class":48,"line":77},[46,220,178],{"class":60},[10,222,224],{"id":223},"_2-找形参和变量声明","2. 找形参和变量声明",[37,226,228],{"className":39,"code":227,"language":41,"meta":42,"style":42},"AO {\n  a: undefined,\n  b: undefined,\n  c: undefined\n}\n",[24,229,230,236,249,260,270],{"__ignoreMap":42},[46,231,232,234],{"class":48,"line":49},[46,233,213],{"class":98},[46,235,216],{"class":60},[46,237,238,241,244,246],{"class":48,"line":77},[46,239,240],{"class":56},"  a",[46,242,243],{"class":60},": ",[46,245,26],{"class":98},[46,247,248],{"class":60},",\n",[46,250,251,254,256,258],{"class":48,"line":89},[46,252,253],{"class":56},"  b",[46,255,243],{"class":60},[46,257,26],{"class":98},[46,259,248],{"class":60},[46,261,262,265,267],{"class":48,"line":102},[46,263,264],{"class":56},"  c",[46,266,243],{"class":60},[46,268,269],{"class":98},"undefined\n",[46,271,272],{"class":48,"line":111},[46,273,178],{"class":60},[10,275,277],{"id":276},"_3-实参值和形参值统一","3. 实参值和形参值统一",[37,279,281],{"className":39,"code":280,"language":41,"meta":42,"style":42},"AO {\n  a: 1,\n  b: undefined,\n  c: undefined\n}\n",[24,282,283,289,299,309,317],{"__ignoreMap":42},[46,284,285,287],{"class":48,"line":49},[46,286,213],{"class":98},[46,288,216],{"class":60},[46,290,291,293,295,297],{"class":48,"line":77},[46,292,240],{"class":56},[46,294,243],{"class":60},[46,296,196],{"class":98},[46,298,248],{"class":60},[46,300,301,303,305,307],{"class":48,"line":89},[46,302,253],{"class":56},[46,304,243],{"class":60},[46,306,26],{"class":98},[46,308,248],{"class":60},[46,310,311,313,315],{"class":48,"line":102},[46,312,264],{"class":56},[46,314,243],{"class":60},[46,316,269],{"class":98},[46,318,319],{"class":48,"line":111},[46,320,178],{"class":60},[10,322,324],{"id":323},"_4-找函数声明","4. 找函数声明",[37,326,328],{"className":39,"code":327,"language":41,"meta":42,"style":42},"AO {\n  a: 3,\n  b: 2,\n  c: 0,\n  d: function d() {}\n}\n",[24,329,330,336,347,358,369,382],{"__ignoreMap":42},[46,331,332,334],{"class":48,"line":49},[46,333,213],{"class":98},[46,335,216],{"class":60},[46,337,338,340,342,345],{"class":48,"line":77},[46,339,240],{"class":56},[46,341,243],{"class":60},[46,343,344],{"class":98},"3",[46,346,248],{"class":60},[46,348,349,351,353,356],{"class":48,"line":89},[46,350,253],{"class":56},[46,352,243],{"class":60},[46,354,355],{"class":98},"2",[46,357,248],{"class":60},[46,359,360,362,364,367],{"class":48,"line":102},[46,361,264],{"class":56},[46,363,243],{"class":60},[46,365,366],{"class":98},"0",[46,368,248],{"class":60},[46,370,371,374,376,378,380],{"class":48,"line":111},[46,372,373],{"class":56},"  d",[46,375,243],{"class":60},[46,377,53],{"class":52},[46,379,160],{"class":56},[46,381,152],{"class":60},[46,383,384],{"class":48,"line":122},[46,385,178],{"class":60},[37,387,389],{"className":39,"code":388,"language":41,"meta":42,"style":42},"\u002F\u002F console.log()\n1\n2\n2\n",[24,390,391,397,402,407],{"__ignoreMap":42},[46,392,393],{"class":48,"line":49},[46,394,396],{"class":395},"sAwPA","\u002F\u002F console.log()\n",[46,398,399],{"class":48,"line":77},[46,400,401],{"class":98},"1\n",[46,403,404],{"class":48,"line":89},[46,405,406],{"class":98},"2\n",[46,408,409],{"class":48,"line":102},[46,410,406],{"class":98},[10,412,413],{"id":413},"全局预编译",[415,416,417,418,421],"p",{},"全局预编译时会生成 ",[24,419,420],{},"GO === window","，并且没有第三步。",[423,424,425],"style",{},"html pre.shiki code .snl16, html code.shiki .snl16{--shiki-default:#F97583}html pre.shiki code .svObZ, html code.shiki .svObZ{--shiki-default:#B392F0}html pre.shiki code .s95oV, html code.shiki .s95oV{--shiki-default:#E1E4E8}html pre.shiki code .s9osk, html code.shiki .s9osk{--shiki-default:#FFAB70}html pre.shiki code .sDLfK, html code.shiki .sDLfK{--shiki-default:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":42,"searchDepth":77,"depth":77,"links":427},[428,429,430,431,432,433,434],{"id":12,"depth":77,"text":12},{"id":35,"depth":77,"text":35},{"id":202,"depth":77,"text":203},{"id":223,"depth":77,"text":224},{"id":276,"depth":77,"text":277},{"id":323,"depth":77,"text":324},{"id":413,"depth":77,"text":413},"前端",null,"2019-09-25","用 AO 和 GO 梳理 JavaScript 函数预编译的基本过程。",false,"md",{},"\u002Fblog\u002Fjavascript_precompilation_four_steps",{"title":5,"description":438},"blog\u002Fjavascript_precompilation_four_steps",[446,447],"JavaScript","预编译","wzATc98DwH9uimsWg0PiaDJDGppDrxcCZ9H9wIVNVGk",1780076049296]