[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"knowledge-\u002Fapi\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fbasics":3,"knowledge-related-\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fbasics":1223,"knowledge-series-\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fbasics":1240},{"source":4,"connector":5,"page":6},"sqlite","better-sqlite3",{"path":7,"title":8,"description":9,"category":10,"tags":11,"date":13,"pinned":14,"draft":14,"body":15,"seo":1219,"stem":1220,"id":1221,"extension":1222},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fbasics","JavaScript 基础","JavaScript（ECMAScript）是 Web 页面与 Node.js 等运行时的脚本语言：在浏览器中操作 DOM、发起网络请求；在服务端处理 I\u002FO。语法与 HTML、CSS 配合构成前端技术栈。","技能小册",[12],"javascript","2023-11-24",false,{"type":16,"value":17,"toc":1203},"minimark",[18,22,42,46,97,107,110,169,183,186,191,215,218,225,228,308,311,318,351,372,375,426,447,450,522,529,532,836,840,855,902,909,913,1114,1117,1120,1199],[19,20,8],"h1",{"id":21},"javascript-基础",[23,24,25,26,31,32,36,37,41],"p",{},"JavaScript（ECMAScript）是 Web 页面与 Node.js 等运行时的脚本语言：在浏览器中操作 ",[27,28,30],"a",{"href":29},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fdom-bom","DOM","、发起网络请求；在服务端处理 I\u002FO。语法与 ",[27,33,35],{"href":34},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fhtml\u002Finfo","HTML","、",[27,38,40],{"href":39},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fcss\u002Fmodel","CSS"," 配合构成前端技术栈。",[43,44,45],"h2",{"id":45},"语言标准",[47,48,49,62],"table",{},[50,51,52],"thead",{},[53,54,55,59],"tr",{},[56,57,58],"th",{},"名称",[56,60,61],{},"说明",[63,64,65,77,87],"tbody",{},[53,66,67,74],{},[68,69,70],"td",{},[71,72,73],"strong",{},"ECMAScript（ES）",[68,75,76],{},"语言规范本身（语法、类型、内置对象）",[53,78,79,84],{},[68,80,81],{},[71,82,83],{},"JavaScript",[68,85,86],{},"实现 ECMAScript 的语言产品名（浏览器引擎、Node.js）",[53,88,89,94],{},[68,90,91],{},[71,92,93],{},"年度版本",[68,95,96],{},"ES2015（ES6）、ES2016… 或 ES2020 等，对应规范年度修订",[23,98,99,100,106],{},"不存在官方的「ES7」简称规范名；查阅特性时请用具体年份或 ",[27,101,105],{"href":102,"rel":103},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fzh-CN\u002Fdocs\u002FWeb\u002FJavaScript",[104],"nofollow","MDN"," 条目。",[43,108,109],{"id":109},"运行环境",[47,111,112,125],{},[50,113,114],{},[53,115,116,119,122],{},[56,117,118],{},"环境",[56,120,121],{},"全局对象",[56,123,124],{},"典型能力",[63,126,127,150],{},[53,128,129,132,143],{},[68,130,131],{},"浏览器",[68,133,134,138,139,142],{},[135,136,137],"code",{},"globalThis","（",[135,140,141],{},"window","）",[68,144,145,146,149],{},"DOM、BOM、",[135,147,148],{},"fetch","、Web API",[53,151,152,155,162],{},[68,153,154],{},"Node.js",[68,156,157,138,159,142],{},[135,158,137],{},[135,160,161],{},"global",[68,163,164,165,168],{},"文件系统、",[135,166,167],{},"http","、npm 模块",[23,170,171,172,175,176,36,179,182],{},"同一套 ECMAScript 语法，",[71,173,174],{},"宿主 API","（如 ",[135,177,178],{},"document",[135,180,181],{},"fs","）由环境提供，不属于语言规范。",[43,184,185],{"id":185},"值与类型",[187,188,190],"h3",{"id":189},"原始类型7-种","原始类型（7 种）",[23,192,193,36,196,36,199,36,202,36,205,36,208,36,211,214],{},[135,194,195],{},"undefined",[135,197,198],{},"null",[135,200,201],{},"boolean",[135,203,204],{},"number",[135,206,207],{},"bigint",[135,209,210],{},"string",[135,212,213],{},"symbol","。",[187,216,217],{"id":217},"对象类型",[23,219,220,221,224],{},"除原始值外均为对象（含数组、函数、日期等）。",[71,222,223],{},"函数","是可调用的对象。",[187,226,227],{"id":227},"类型检测",[47,229,230,239],{},[50,231,232],{},[53,233,234,237],{},[56,235,236],{},"方式",[56,238,61],{},[63,240,241,273,283,295],{},[53,242,243,248],{},[68,244,245],{},[135,246,247],{},"typeof x",[68,249,250,252,253,252,255,252,257,252,259,252,261,252,263,266,267,272],{},[135,251,195],{}," \u002F ",[135,254,201],{},[135,256,210],{},[135,258,213],{},[135,260,204],{},[135,262,207],{},[135,264,265],{},"function","；",[71,268,269],{},[135,270,271],{},"typeof null === 'object'","（历史遗留）",[53,274,275,280],{},[68,276,277],{},[135,278,279],{},"Array.isArray(x)",[68,281,282],{},"判断数组",[53,284,285,290],{},[68,286,287],{},[135,288,289],{},"x === null",[68,291,292,293],{},"判断 ",[135,294,198],{},[53,296,297,302],{},[68,298,299],{},[135,300,301],{},"Object.prototype.toString.call(x)",[68,303,304,305],{},"精确内置标签，如 ",[135,306,307],{},"[object Date]",[43,309,310],{"id":310},"严格模式",[23,312,313,314,317],{},"在文件或函数顶部写 ",[135,315,316],{},"'use strict';"," 后：",[319,320,321,329,335,344],"ul",{},[322,323,324,325,328],"li",{},"未声明变量赋值抛 ",[135,326,327],{},"ReferenceError","（禁止意外全局变量）",[322,330,331,334],{},[135,332,333],{},"delete"," 不可删除变量",[322,336,337,340,341,343],{},[135,338,339],{},"eval"," 不创建与外部共享的作用域（在严格 ",[135,342,339],{}," 中）",[322,345,346,347,350],{},"禁止 ",[135,348,349],{},"with","、八进制字面量等",[23,352,353,138,356,359,360,363,364,367,368,371],{},[71,354,355],{},"模块",[135,357,358],{},"import","\u002F",[135,361,362],{},"export","）与 ",[71,365,366],{},"class"," 内部",[71,369,370],{},"默认","严格模式。",[43,373,374],{"id":374},"相等比较",[47,376,377,387],{},[50,378,379],{},[53,380,381,384],{},[56,382,383],{},"运算符",[56,385,386],{},"行为",[63,388,389,405],{},[53,390,391,399],{},[68,392,393,252,396],{},[135,394,395],{},"===",[135,397,398],{},"!==",[68,400,401,404],{},[71,402,403],{},"严格相等","：不转换类型，推荐默认使用",[53,406,407,415],{},[68,408,409,252,412],{},[135,410,411],{},"==",[135,413,414],{},"!=",[68,416,417,418,421,422,425],{},"抽象相等：会类型转换（如 ",[135,419,420],{},"'' == 0"," 为 ",[135,423,424],{},"true","），易出错",[23,427,428,431,432,434,435,421,438,440,441,252,444,214],{},[135,429,430],{},"Object.is(a, b)"," 与 ",[135,433,395],{}," 类似，但 ",[135,436,437],{},"Object.is(NaN, NaN)",[135,439,424],{},"，且区分 ",[135,442,443],{},"+0",[135,445,446],{},"-0",[43,448,449],{"id":449},"变量声明",[47,451,452,468],{},[50,453,454],{},[53,455,456,459,462,465],{},[56,457,458],{},"关键字",[56,460,461],{},"作用域",[56,463,464],{},"重复声明",[56,466,467],{},"暂时性死区",[63,469,470,488,504],{},[53,471,472,477,480,483],{},[68,473,474],{},[135,475,476],{},"var",[68,478,479],{},"函数作用域",[68,481,482],{},"允许",[68,484,485,486,142],{},"无（提升为 ",[135,487,195],{},[53,489,490,495,498,501],{},[68,491,492],{},[135,493,494],{},"let",[68,496,497],{},"块级",[68,499,500],{},"禁止",[68,502,503],{},"有",[53,505,506,511,513,515],{},[68,507,508],{},[135,509,510],{},"const",[68,512,497],{},[68,514,500],{},[68,516,517,518,521],{},"有；须初始化，",[71,519,520],{},"绑定不可改","，对象内容仍可变",[23,523,524,525,214],{},"详见 ",[27,526,528],{"href":527},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fscope","执行模型与作用域",[43,530,531],{"id":531},"常见语法要点",[533,534,539],"pre",{"className":535,"code":536,"language":537,"meta":538,"style":538},"language-js shiki shiki-themes material-theme-lighter github-light github-dark","\u002F\u002F 解构\nconst { name, age } = user;\nconst [first, ...rest] = list;\n\n\u002F\u002F 展开\nconst merged = { ...defaults, ...options };\nconst arr2 = [...arr1, 4];\n\n\u002F\u002F 可选链与空值合并\nconst city = user?.address?.city;\nconst port = config.port ?? 3000;\n\n\u002F\u002F 模板字符串\nconst msg = `Hello, ${name}!`;\n\n\u002F\u002F 箭头函数：无自身 arguments \u002F this，适合回调\nconst double = (n) => n * 2;\n","js","",[135,540,541,550,584,613,620,626,653,681,686,692,717,744,749,755,790,795,801],{"__ignoreMap":538},[542,543,546],"span",{"class":544,"line":545},"line",1,[542,547,549],{"class":548},"sutJx","\u002F\u002F 解构\n",[542,551,553,556,560,564,567,570,573,577,581],{"class":544,"line":552},2,[542,554,510],{"class":555},"sbsja",[542,557,559],{"class":558},"sP7_E"," {",[542,561,563],{"class":562},"s_hVV"," name",[542,565,566],{"class":558},",",[542,568,569],{"class":562}," age",[542,571,572],{"class":558}," }",[542,574,576],{"class":575},"smGrS"," =",[542,578,580],{"class":579},"su5hD"," user",[542,582,583],{"class":558},";\n",[542,585,587,589,592,595,597,600,603,606,608,611],{"class":544,"line":586},3,[542,588,510],{"class":555},[542,590,591],{"class":558}," [",[542,593,594],{"class":562},"first",[542,596,566],{"class":558},[542,598,599],{"class":575}," ...",[542,601,602],{"class":562},"rest",[542,604,605],{"class":558},"]",[542,607,576],{"class":575},[542,609,610],{"class":579}," list",[542,612,583],{"class":558},[542,614,616],{"class":544,"line":615},4,[542,617,619],{"emptyLinePlaceholder":618},true,"\n",[542,621,623],{"class":544,"line":622},5,[542,624,625],{"class":548},"\u002F\u002F 展开\n",[542,627,629,631,634,636,638,640,643,645,647,650],{"class":544,"line":628},6,[542,630,510],{"class":555},[542,632,633],{"class":562}," merged",[542,635,576],{"class":575},[542,637,559],{"class":558},[542,639,599],{"class":575},[542,641,642],{"class":579},"defaults",[542,644,566],{"class":558},[542,646,599],{"class":575},[542,648,649],{"class":579},"options ",[542,651,652],{"class":558},"};\n",[542,654,656,658,661,663,665,668,671,673,677,679],{"class":544,"line":655},7,[542,657,510],{"class":555},[542,659,660],{"class":562}," arr2",[542,662,576],{"class":575},[542,664,591],{"class":579},[542,666,667],{"class":575},"...",[542,669,670],{"class":579},"arr1",[542,672,566],{"class":558},[542,674,676],{"class":675},"srdBf"," 4",[542,678,605],{"class":579},[542,680,583],{"class":558},[542,682,684],{"class":544,"line":683},8,[542,685,619],{"emptyLinePlaceholder":618},[542,687,689],{"class":544,"line":688},9,[542,690,691],{"class":548},"\u002F\u002F 可选链与空值合并\n",[542,693,695,697,700,702,704,707,710,712,715],{"class":544,"line":694},10,[542,696,510],{"class":555},[542,698,699],{"class":562}," city",[542,701,576],{"class":575},[542,703,580],{"class":579},[542,705,706],{"class":558},"?.",[542,708,709],{"class":579},"address",[542,711,706],{"class":558},[542,713,714],{"class":579},"city",[542,716,583],{"class":558},[542,718,720,722,725,727,730,733,736,739,742],{"class":544,"line":719},11,[542,721,510],{"class":555},[542,723,724],{"class":562}," port",[542,726,576],{"class":575},[542,728,729],{"class":579}," config",[542,731,732],{"class":558},".",[542,734,735],{"class":579},"port ",[542,737,738],{"class":575},"??",[542,740,741],{"class":675}," 3000",[542,743,583],{"class":558},[542,745,747],{"class":544,"line":746},12,[542,748,619],{"emptyLinePlaceholder":618},[542,750,752],{"class":544,"line":751},13,[542,753,754],{"class":548},"\u002F\u002F 模板字符串\n",[542,756,758,760,763,765,769,773,776,779,782,785,788],{"class":544,"line":757},14,[542,759,510],{"class":555},[542,761,762],{"class":562}," msg",[542,764,576],{"class":575},[542,766,768],{"class":767},"sjJ54"," `",[542,770,772],{"class":771},"s_sjI","Hello, ",[542,774,775],{"class":767},"${",[542,777,778],{"class":579},"name",[542,780,781],{"class":767},"}",[542,783,784],{"class":771},"!",[542,786,787],{"class":767},"`",[542,789,583],{"class":558},[542,791,793],{"class":544,"line":792},15,[542,794,619],{"emptyLinePlaceholder":618},[542,796,798],{"class":544,"line":797},16,[542,799,800],{"class":548},"\u002F\u002F 箭头函数：无自身 arguments \u002F this，适合回调\n",[542,802,804,806,810,812,815,819,822,825,828,831,834],{"class":544,"line":803},17,[542,805,510],{"class":555},[542,807,809],{"class":808},"sfCm-"," double",[542,811,576],{"class":575},[542,813,814],{"class":558}," (",[542,816,818],{"class":817},"s99_P","n",[542,820,821],{"class":558},")",[542,823,824],{"class":555}," =>",[542,826,827],{"class":579}," n ",[542,829,830],{"class":575},"*",[542,832,833],{"class":675}," 2",[542,835,583],{"class":558},[43,837,839],{"id":838},"模块esm","模块（ESM）",[23,841,842,843,846,847,850,851,854],{},"浏览器与 Node.js（",[135,844,845],{},"package.json"," 中 ",[135,848,849],{},"\"type\": \"module\""," 或 ",[135,852,853],{},".mjs","）支持：",[533,856,858],{"className":535,"code":857,"language":537,"meta":538,"style":538},"export const PI = 3.14;\nimport { PI } from \".\u002Fconstants.js\";\n",[135,859,860,878],{"__ignoreMap":538},[542,861,862,865,868,871,873,876],{"class":544,"line":545},[542,863,362],{"class":864},"sVHd0",[542,866,867],{"class":555}," const",[542,869,870],{"class":562}," PI",[542,872,576],{"class":575},[542,874,875],{"class":675}," 3.14",[542,877,583],{"class":558},[542,879,880,882,884,886,888,891,894,897,900],{"class":544,"line":552},[542,881,358],{"class":864},[542,883,559],{"class":558},[542,885,870],{"class":579},[542,887,572],{"class":558},[542,889,890],{"class":864}," from",[542,892,893],{"class":767}," \"",[542,895,896],{"class":771},".\u002Fconstants.js",[542,898,899],{"class":767},"\"",[542,901,583],{"class":558},[23,903,904,905,214],{},"工程化与 CommonJS 对比见 ",[27,906,908],{"href":907},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fcommon","模块化与工程化",[43,910,912],{"id":911},"学习路径本目录","学习路径（本目录）",[47,914,915,928],{},[50,916,917],{},[53,918,919,922,925],{},[56,920,921],{},"顺序",[56,923,924],{},"文档",[56,926,927],{},"主题",[63,929,930,943,960,976,990,1004,1018,1032,1045,1059,1073,1087,1100],{},[53,931,932,935,940],{},[68,933,934],{},"1",[68,936,937],{},[27,938,939],{"href":527},"scope",[68,941,942],{},"作用域、闭包、提升",[53,944,945,948,954],{},[68,946,947],{},"2",[68,949,950],{},[27,951,953],{"href":952},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fadvanced","advanced",[68,955,956,959],{},[135,957,958],{},"this","、高阶函数",[53,961,962,965,971],{},[68,963,964],{},"3",[68,966,967],{},[27,968,970],{"href":969},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fprototype","prototype",[68,972,973,974],{},"原型与 ",[135,975,366],{},[53,977,978,981,987],{},[68,979,980],{},"4",[68,982,983],{},[27,984,986],{"href":985},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fevent-loop","event-loop",[68,988,989],{},"异步与事件循环",[53,991,992,995,1001],{},[68,993,994],{},"5",[68,996,997],{},[27,998,1000],{"href":999},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fmap-set","map-set",[68,1002,1003],{},"集合与 Symbol",[53,1005,1006,1009,1015],{},[68,1007,1008],{},"6",[68,1010,1011],{},[27,1012,1014],{"href":1013},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fproxy","proxy",[68,1016,1017],{},"Proxy \u002F Reflect",[53,1019,1020,1023,1029],{},[68,1021,1022],{},"7",[68,1024,1025],{},[27,1026,1028],{"href":1027},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Ferror","error",[68,1030,1031],{},"错误与调试",[53,1033,1034,1037,1042],{},[68,1035,1036],{},"8",[68,1038,1039],{},[27,1040,1041],{"href":29},"dom-bom",[68,1043,1044],{},"浏览器 API",[53,1046,1047,1050,1056],{},[68,1048,1049],{},"9",[68,1051,1052],{},[27,1053,1055],{"href":1054},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fperformance","performance",[68,1057,1058],{},"性能优化",[53,1060,1061,1064,1070],{},[68,1062,1063],{},"10",[68,1065,1066],{},[27,1067,1069],{"href":1068},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fsafe","safe",[68,1071,1072],{},"安全",[53,1074,1075,1078,1084],{},[68,1076,1077],{},"11",[68,1079,1080],{},[27,1081,1083],{"href":1082},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fdesign","design",[68,1085,1086],{},"设计模式",[53,1088,1089,1092,1097],{},[68,1090,1091],{},"12",[68,1093,1094],{},[27,1095,1096],{"href":907},"common",[68,1098,1099],{},"模块与打包",[53,1101,1102,1105,1111],{},[68,1103,1104],{},"13",[68,1106,1107],{},[27,1108,1110],{"href":1109},"\u002Fknowledge\u002Fbooklet\u002Fweb\u002Fjs\u002Fexec","exec",[68,1112,1113],{},"正则表达式",[43,1115,1116],{"id":1116},"参考文献",[23,1118,1119],{},"以下链接在编写时均可正常访问：",[47,1121,1122,1131],{},[50,1123,1124],{},[53,1125,1126,1129],{},[56,1127,1128],{},"资料",[56,1130,61],{},[63,1132,1133,1145,1157,1169,1183],{},[53,1134,1135,1142],{},[68,1136,1137],{},[27,1138,1141],{"href":1139,"rel":1140},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fzh-CN\u002Fdocs\u002FWeb\u002FJavaScript\u002FGuide",[104],"MDN：JavaScript 指南",[68,1143,1144],{},"中文入门",[53,1146,1147,1154],{},[68,1148,1149],{},[27,1150,1153],{"href":1151,"rel":1152},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fzh-CN\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference",[104],"MDN：JavaScript 参考",[68,1155,1156],{},"内置对象与语法",[53,1158,1159,1166],{},[68,1160,1161],{},[27,1162,1165],{"href":1163,"rel":1164},"https:\u002F\u002Ftc39.es\u002Fecma262\u002F",[104],"ECMA-262 规范",[68,1167,1168],{},"官方语言规范（英文）",[53,1170,1171,1178],{},[68,1172,1173],{},[27,1174,1177],{"href":1175,"rel":1176},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fzh-CN\u002Fdocs\u002FWeb\u002FJavaScript\u002FReference\u002FStrict_mode",[104],"MDN：严格模式",[68,1179,1180],{},[135,1181,1182],{},"'use strict'",[53,1184,1185,1192],{},[68,1186,1187],{},[27,1188,1191],{"href":1189,"rel":1190},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fzh-CN\u002Fdocs\u002FWeb\u002FJavaScript\u002FEquality_comparisons_and_sameness",[104],"MDN：相等比较",[68,1193,1194,431,1196],{},[135,1195,395],{},[135,1197,1198],{},"Object.is",[1200,1201,1202],"style",{},"html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sfCm-, html code.shiki .sfCm-{--shiki-light:#90A4AE;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}",{"title":538,"searchDepth":552,"depth":552,"links":1204},[1205,1206,1207,1212,1213,1214,1215,1216,1217,1218],{"id":45,"depth":552,"text":45},{"id":109,"depth":552,"text":109},{"id":185,"depth":552,"text":185,"children":1208},[1209,1210,1211],{"id":189,"depth":586,"text":190},{"id":217,"depth":586,"text":217},{"id":227,"depth":586,"text":227},{"id":310,"depth":552,"text":310},{"id":374,"depth":552,"text":374},{"id":449,"depth":552,"text":449},{"id":531,"depth":552,"text":531},{"id":838,"depth":552,"text":839},{"id":911,"depth":552,"text":912},{"id":1116,"depth":552,"text":1116},{"title":8,"description":9},"knowledge\u002Fbooklet\u002Fweb\u002FJs\u002Fbasics","knowledge\u002Fknowledge\u002Fbooklet\u002Fweb\u002FJs\u002Fbasics.md","md",{"items":1224},[1225,1228,1231,1233,1235,1237],{"path":1027,"title":1226,"description":1227,"category":10,"score":628},"错误处理与调试","结构化错误类型、try\u002Fcatch 与全局未捕获处理是健壮应用的基础。",{"path":29,"title":1229,"description":1230,"category":10,"score":628},"浏览器相关 API","DOM 事件、存储、fetch、Worker、Observer 等由浏览器提供的 Web API（非 ECMAScript 核心）。HTML 结构见 标签。",{"path":1054,"title":1058,"description":1232,"category":10,"score":628},"防抖\u002F节流、渲染与内存、资源预加载及引擎行为是前端性能的主要抓手。相关 CSS 见 视觉效果、Head 资源提示。",{"path":907,"title":908,"description":1234,"category":10,"score":628},"ESM、CommonJS 与打包工具（Tree Shaking、代码分割）是前端工程化的基础。入门见 JavaScript 基础 · 模块。",{"path":527,"title":528,"description":1236,"category":10,"score":628},"执行上下文与词法作用域决定变量在何处可访问、闭包如何形成，以及 var \u002F let \u002F const 的差异。语言概览见 JavaScript 基础。",{"path":999,"title":1238,"description":1239,"category":10,"score":628},"数据结构与集合增强","Map \u002F Set、WeakMap \u002F WeakSet、数组高阶方法、TypedArray 与 Symbol 等扩展了内置数据结构能力。见 语言基础。",{"series":1241,"title":537,"items":1242,"index":545,"prev":1274,"next":1275},"booklet\u002Fweb\u002Fjs",[1243,1246,1247,1249,1251,1253,1255,1258,1260,1262,1264,1267,1270,1272],{"path":952,"title":1244,"date":1245,"pinned":14},"函数进阶","2022-10-24",{"path":7,"title":8,"date":13,"pinned":14},{"path":907,"title":908,"date":1248,"pinned":14},"2025-06-21",{"path":1082,"title":1086,"date":1250,"pinned":14},"2021-10-05",{"path":29,"title":1229,"date":1252,"pinned":14},"2025-07-10",{"path":1027,"title":1226,"date":1254,"pinned":14},"2026-06-25",{"path":985,"title":1256,"date":1257,"pinned":14},"异步编程与事件循环","2020-03-23",{"path":1109,"title":1113,"date":1259,"pinned":14},"2022-05-21",{"path":999,"title":1238,"date":1261,"pinned":14},"2024-07-10",{"path":1054,"title":1058,"date":1263,"pinned":14},"2025-07-04",{"path":969,"title":1265,"date":1266,"pinned":14},"原型与面向对象","2020-04-13",{"path":1013,"title":1268,"date":1269,"pinned":14},"代理与反射","2022-10-23",{"path":1068,"title":1072,"date":1271,"pinned":14},"2023-06-26",{"path":527,"title":528,"date":1273,"pinned":14},"2025-01-29",{"path":952,"title":1244,"date":1245,"pinned":14},{"path":907,"title":908,"date":1248,"pinned":14}]