[{"data":1,"prerenderedAt":2677},["ShallowReactive",2],{"doc-\u002Fdocs\u002Frandom-color-utils":3,"docs-all":2571},{"id":4,"title":5,"body":6,"category":2557,"date":2558,"description":2559,"draft":2560,"extension":2561,"meta":2562,"navigation":251,"path":2563,"seo":2564,"source":2565,"stem":2566,"tags":2567,"__hash__":2570},"docs\u002Fdocs\u002Frandom-color-utils.md","JS 随机颜色生成方法",{"type":7,"value":8,"toc":2549},"minimark",[9,13,17,123,127,131,289,293,296,569,573,578,730,735,1760,1764,1767,1871,1875,1878,1994,1997,2000,2010,2017,2020,2542,2545],[10,11,12],"h1",{"id":12},"随机色",[14,15,16],"h2",{"id":16},"设置颜色方法",[18,19,20,32,45,77],"ol",{},[21,22,23,24,28,29],"li",{},"颜色名称：",[25,26,27],"code",{},"dodgerBlue","、",[25,30,31],{},"deepPink",[21,33,34,35,38,39,28,42],{},"十六进制：取值范围 0x000000 ~ 0xffffff，前面加 ",[25,36,37],{},"#","转换为字符串表示颜色，",[25,40,41],{},"#ffffff 白色",[25,43,44],{},"#000000 黑色",[21,46,47,50,51,54,55,58,59,62],{},[25,48,49],{},"rgb","，",[25,52,53],{},"rgba"," 颜色：",[25,56,57],{},"rgba(255,255,255,0.65) 白色，透明度0.65",", ",[25,60,61],{},"rgba(R,G,B,A)",[63,64,65,68,71,74],"ul",{},[21,66,67],{},"R：红色值，0~255 正整数",[21,69,70],{},"G：绿色值，0~255 正整数",[21,72,73],{},"B：蓝色值，0~255 正整数",[21,75,76],{},"A：Alpha 透明度，0~1 之间的小数值",[21,78,79,82,83,86,87,50,90,93],{},[25,80,81],{},"hsl",",",[25,84,85],{},"hsla"," 颜色：类似 rgb，",[25,88,89],{},"hsla(360,50%,50%,0.5) 半透明红色",[25,91,92],{},"hsla(H,S,L,A)",[63,94,95,102,109,116],{},[21,96,97,98,101],{},"H：",[25,99,100],{},"Hue","色调。取值 0 ~ 360，0、360 表示红色，120 表示绿色，240 表示蓝色。",[21,103,104,105,108],{},"S：",[25,106,107],{},"Saturation","饱和度：取值 0.0% ~ 100.0%",[21,110,111,112,115],{},"L：",[25,113,114],{},"Lightness","亮度：取值 0.0% ~ 100.0%",[21,117,118,119,122],{},"A：",[25,120,121],{},"Alpha","透明度：取值 0 ~ 1",[14,124,126],{"id":125},"随机-rgb-颜色","随机 RGB 颜色",[128,129,130],"p",{},"随机 0 ~ 255 之间的整数，分别代表红、绿、蓝三种颜色。",[132,133,138],"pre",{"className":134,"code":135,"language":136,"meta":137,"style":137},"language-js shiki shiki-themes github-light github-dark","function randomRGBColor() {\n    const r = Math.floor(Math.random() * 255);\n    const g = Math.floor(Math.random() * 255);\n    const b = Math.floor(Math.random() * 255);\n\n    return `rgb(${r},${g},${b})`;\n}\n","js","",[25,139,140,157,194,220,246,253,283],{"__ignoreMap":137},[141,142,145,149,153],"span",{"class":143,"line":144},"line",1,[141,146,148],{"class":147},"szBVR","function",[141,150,152],{"class":151},"sScJk"," randomRGBColor",[141,154,156],{"class":155},"sVt8B","() {\n",[141,158,160,163,167,170,173,176,179,182,185,188,191],{"class":143,"line":159},2,[141,161,162],{"class":147},"    const",[141,164,166],{"class":165},"sj4cs"," r",[141,168,169],{"class":147}," =",[141,171,172],{"class":155}," Math.",[141,174,175],{"class":151},"floor",[141,177,178],{"class":155},"(Math.",[141,180,181],{"class":151},"random",[141,183,184],{"class":155},"() ",[141,186,187],{"class":147},"*",[141,189,190],{"class":165}," 255",[141,192,193],{"class":155},");\n",[141,195,197,199,202,204,206,208,210,212,214,216,218],{"class":143,"line":196},3,[141,198,162],{"class":147},[141,200,201],{"class":165}," g",[141,203,169],{"class":147},[141,205,172],{"class":155},[141,207,175],{"class":151},[141,209,178],{"class":155},[141,211,181],{"class":151},[141,213,184],{"class":155},[141,215,187],{"class":147},[141,217,190],{"class":165},[141,219,193],{"class":155},[141,221,223,225,228,230,232,234,236,238,240,242,244],{"class":143,"line":222},4,[141,224,162],{"class":147},[141,226,227],{"class":165}," b",[141,229,169],{"class":147},[141,231,172],{"class":155},[141,233,175],{"class":151},[141,235,178],{"class":155},[141,237,181],{"class":151},[141,239,184],{"class":155},[141,241,187],{"class":147},[141,243,190],{"class":165},[141,245,193],{"class":155},[141,247,249],{"class":143,"line":248},5,[141,250,252],{"emptyLinePlaceholder":251},true,"\n",[141,254,256,259,263,266,269,272,274,277,280],{"class":143,"line":255},6,[141,257,258],{"class":147},"    return",[141,260,262],{"class":261},"sZZnC"," `rgb(${",[141,264,265],{"class":155},"r",[141,267,268],{"class":261},"},${",[141,270,271],{"class":155},"g",[141,273,268],{"class":261},[141,275,276],{"class":155},"b",[141,278,279],{"class":261},"})`",[141,281,282],{"class":155},";\n",[141,284,286],{"class":143,"line":285},7,[141,287,288],{"class":155},"}\n",[14,290,292],{"id":291},"随机-rgba-颜色","随机 RGBA 颜色",[128,294,295],{},"随机 rgb 色值之后，再随机一个 0 ~ 1 之间的数，表示透明度。",[132,297,299],{"className":134,"code":298,"language":136,"meta":137,"style":137},"function randomRGBAColor() {\n    const r = Math.floor(Math.random() * 255);\n    const g = Math.floor(Math.random() * 255);\n    const b = Math.floor(Math.random() * 255);\n    const a = Math.random();\n\n    return `rgba(${r},${g},${b},${a})`;\n}\n\nfunction getRandomRGBColor() {\n    const r = Math.floor(Math.random() * 255);\n    const g = Math.floor(Math.random() * 255);\n    const b = Math.floor(Math.random() * 255);\n    return \"rgba(\" + r + \",\" + g + \",\" + b + \",0.8)\";\n}\n",[25,300,301,310,334,358,382,398,402,428,433,438,448,473,498,523,564],{"__ignoreMap":137},[141,302,303,305,308],{"class":143,"line":144},[141,304,148],{"class":147},[141,306,307],{"class":151}," randomRGBAColor",[141,309,156],{"class":155},[141,311,312,314,316,318,320,322,324,326,328,330,332],{"class":143,"line":159},[141,313,162],{"class":147},[141,315,166],{"class":165},[141,317,169],{"class":147},[141,319,172],{"class":155},[141,321,175],{"class":151},[141,323,178],{"class":155},[141,325,181],{"class":151},[141,327,184],{"class":155},[141,329,187],{"class":147},[141,331,190],{"class":165},[141,333,193],{"class":155},[141,335,336,338,340,342,344,346,348,350,352,354,356],{"class":143,"line":196},[141,337,162],{"class":147},[141,339,201],{"class":165},[141,341,169],{"class":147},[141,343,172],{"class":155},[141,345,175],{"class":151},[141,347,178],{"class":155},[141,349,181],{"class":151},[141,351,184],{"class":155},[141,353,187],{"class":147},[141,355,190],{"class":165},[141,357,193],{"class":155},[141,359,360,362,364,366,368,370,372,374,376,378,380],{"class":143,"line":222},[141,361,162],{"class":147},[141,363,227],{"class":165},[141,365,169],{"class":147},[141,367,172],{"class":155},[141,369,175],{"class":151},[141,371,178],{"class":155},[141,373,181],{"class":151},[141,375,184],{"class":155},[141,377,187],{"class":147},[141,379,190],{"class":165},[141,381,193],{"class":155},[141,383,384,386,389,391,393,395],{"class":143,"line":248},[141,385,162],{"class":147},[141,387,388],{"class":165}," a",[141,390,169],{"class":147},[141,392,172],{"class":155},[141,394,181],{"class":151},[141,396,397],{"class":155},"();\n",[141,399,400],{"class":143,"line":255},[141,401,252],{"emptyLinePlaceholder":251},[141,403,404,406,409,411,413,415,417,419,421,424,426],{"class":143,"line":285},[141,405,258],{"class":147},[141,407,408],{"class":261}," `rgba(${",[141,410,265],{"class":155},[141,412,268],{"class":261},[141,414,271],{"class":155},[141,416,268],{"class":261},[141,418,276],{"class":155},[141,420,268],{"class":261},[141,422,423],{"class":155},"a",[141,425,279],{"class":261},[141,427,282],{"class":155},[141,429,431],{"class":143,"line":430},8,[141,432,288],{"class":155},[141,434,436],{"class":143,"line":435},9,[141,437,252],{"emptyLinePlaceholder":251},[141,439,441,443,446],{"class":143,"line":440},10,[141,442,148],{"class":147},[141,444,445],{"class":151}," getRandomRGBColor",[141,447,156],{"class":155},[141,449,451,453,455,457,459,461,463,465,467,469,471],{"class":143,"line":450},11,[141,452,162],{"class":147},[141,454,166],{"class":165},[141,456,169],{"class":147},[141,458,172],{"class":155},[141,460,175],{"class":151},[141,462,178],{"class":155},[141,464,181],{"class":151},[141,466,184],{"class":155},[141,468,187],{"class":147},[141,470,190],{"class":165},[141,472,193],{"class":155},[141,474,476,478,480,482,484,486,488,490,492,494,496],{"class":143,"line":475},12,[141,477,162],{"class":147},[141,479,201],{"class":165},[141,481,169],{"class":147},[141,483,172],{"class":155},[141,485,175],{"class":151},[141,487,178],{"class":155},[141,489,181],{"class":151},[141,491,184],{"class":155},[141,493,187],{"class":147},[141,495,190],{"class":165},[141,497,193],{"class":155},[141,499,501,503,505,507,509,511,513,515,517,519,521],{"class":143,"line":500},13,[141,502,162],{"class":147},[141,504,227],{"class":165},[141,506,169],{"class":147},[141,508,172],{"class":155},[141,510,175],{"class":151},[141,512,178],{"class":155},[141,514,181],{"class":151},[141,516,184],{"class":155},[141,518,187],{"class":147},[141,520,190],{"class":165},[141,522,193],{"class":155},[141,524,526,528,531,534,537,540,543,545,548,550,552,554,557,559,562],{"class":143,"line":525},14,[141,527,258],{"class":147},[141,529,530],{"class":261}," \"rgba(\"",[141,532,533],{"class":147}," +",[141,535,536],{"class":155}," r ",[141,538,539],{"class":147},"+",[141,541,542],{"class":261}," \",\"",[141,544,533],{"class":147},[141,546,547],{"class":155}," g ",[141,549,539],{"class":147},[141,551,542],{"class":261},[141,553,533],{"class":147},[141,555,556],{"class":155}," b ",[141,558,539],{"class":147},[141,560,561],{"class":261}," \",0.8)\"",[141,563,282],{"class":155},[141,565,567],{"class":143,"line":566},15,[141,568,288],{"class":155},[14,570,572],{"id":571},"随机十六进制-hex-颜色","随机十六进制 Hex 颜色",[18,574,575],{},[21,576,577],{},"随机生成 0 ~ 255 之间的整数，分别代表红、绿、蓝三种颜色，再分别将它们转为十六进制，并拼接在一起。",[132,579,581],{"className":134,"code":580,"language":136,"meta":137,"style":137},"function randomHexColor() {\n    const r = Math.floor(Math.random() * 255);\n    const g = Math.floor(Math.random() * 255);\n    const b = Math.floor(Math.random() * 255);\n\n    return `#${r.toString(16)}${g.toString(16)}${b.toString(16)}`;\n}\n",[25,582,583,592,616,640,664,668,726],{"__ignoreMap":137},[141,584,585,587,590],{"class":143,"line":144},[141,586,148],{"class":147},[141,588,589],{"class":151}," randomHexColor",[141,591,156],{"class":155},[141,593,594,596,598,600,602,604,606,608,610,612,614],{"class":143,"line":159},[141,595,162],{"class":147},[141,597,166],{"class":165},[141,599,169],{"class":147},[141,601,172],{"class":155},[141,603,175],{"class":151},[141,605,178],{"class":155},[141,607,181],{"class":151},[141,609,184],{"class":155},[141,611,187],{"class":147},[141,613,190],{"class":165},[141,615,193],{"class":155},[141,617,618,620,622,624,626,628,630,632,634,636,638],{"class":143,"line":196},[141,619,162],{"class":147},[141,621,201],{"class":165},[141,623,169],{"class":147},[141,625,172],{"class":155},[141,627,175],{"class":151},[141,629,178],{"class":155},[141,631,181],{"class":151},[141,633,184],{"class":155},[141,635,187],{"class":147},[141,637,190],{"class":165},[141,639,193],{"class":155},[141,641,642,644,646,648,650,652,654,656,658,660,662],{"class":143,"line":222},[141,643,162],{"class":147},[141,645,227],{"class":165},[141,647,169],{"class":147},[141,649,172],{"class":155},[141,651,175],{"class":151},[141,653,178],{"class":155},[141,655,181],{"class":151},[141,657,184],{"class":155},[141,659,187],{"class":147},[141,661,190],{"class":165},[141,663,193],{"class":155},[141,665,666],{"class":143,"line":248},[141,667,252],{"emptyLinePlaceholder":251},[141,669,670,672,675,677,680,683,686,689,692,695,697,699,701,703,705,707,709,711,713,715,717,719,721,724],{"class":143,"line":255},[141,671,258],{"class":147},[141,673,674],{"class":261}," `#${",[141,676,265],{"class":155},[141,678,679],{"class":261},".",[141,681,682],{"class":151},"toString",[141,684,685],{"class":261},"(",[141,687,688],{"class":165},"16",[141,690,691],{"class":261},")",[141,693,694],{"class":261},"}${",[141,696,271],{"class":155},[141,698,679],{"class":261},[141,700,682],{"class":151},[141,702,685],{"class":261},[141,704,688],{"class":165},[141,706,691],{"class":261},[141,708,694],{"class":261},[141,710,276],{"class":155},[141,712,679],{"class":261},[141,714,682],{"class":151},[141,716,685],{"class":261},[141,718,688],{"class":165},[141,720,691],{"class":261},[141,722,723],{"class":261},"}`",[141,725,282],{"class":155},[141,727,728],{"class":143,"line":285},[141,729,288],{"class":155},[18,731,732],{"start":159},[21,733,734],{},"随机生成 6 个字符串，再串到一起",[132,736,738],{"className":134,"code":737,"language":136,"meta":137,"style":137},"function randomHexColor0() {\n    const color = (colorStr = \"\") => {\n        const str = \"0123456789abcdef\";\n        colorStr += str[Math.floor(Math.random() * 16)];\n        if (colorStr.length === 6) {\n            return \"#\" + colorStr;\n        }\n        return color(colorStr);\n    };\n    return color();\n}\n\nconst randomHexColor1 = () => {\n    return (\n        \"#\" +\n        (function (color) {\n            return (color += \"0123456789abcdef\"[Math.floor(Math.random() * 16)]) &&\n                color.length === 6\n                ? color\n                : arguments.callee(color);\n        })(\"\")\n    );\n};\n\nfunction randomHexColor2() {\n    const str = \"0123456789abcdef\";\n    let color = \"#\";\n    for (let i = 0; i \u003C 6; i++) {\n        color += str[Math.floor(Math.random() * 16)];\n    }\n    return color;\n}\n\nconst randomHexColor3 = () => {\n    \u002F\u002F 传入 Math 对象，用 Hex 的长度来递归调用自身\n    return (function (m, s, c) {\n        return (\n            (c ? arguments.callee(m, s, c - 1) : \"#\") + s[m.floor(m.random() * 16)]\n        );\n    })(Math, \"0123456789abcdef\", 5);\n};\n\nfunction randomHexColor4() {\n    \u002F\u002F 转为 16 进制小数字符串， slice(2, 8) 截取小数点后 6 位\n    return \"#\" + Math.random().toString(16).slice(2, 8).padStart(6, \"0\");\n}\n\n\u002F\u002F Hex 颜色取值范围是 0 ~ 0xffffff，即 0x000000 ~ 0xffffff，表示 24 位颜色值\n\n\u002F\u002F 随机生成 0 ~ 0xffffff 之间的整数\nfunction randomHexColor5() {\n    \u002F\u002F 将 0xffffff 转为 10 进制，进行random取值后，再转为字符串\n    return \"#\" + Math.floor(Math.random() * 16777215).toString(16);\n}\n\nfunction randomHexColor6() {\n    \u002F\u002F 转为 16 进制，不足 6 位前面补 0\n    return (\n        \"#\" +\n        Math.floor(Math.random() * 0xffffff)\n            .toString(16)\n            .padStart(6, \"0\")\n    );\n}\nfunction randomHexColor7() {\n    \u002F\u002F  \u003C\u003C 0 获取随机数后左移 0 位，相当于取整，替代 Math.floor\n    return \"#\" + Math.floor((Math.random() * 0xffffff) \u003C\u003C 0).toString(16);\n}\n\u002F\u002F toString(16) 存在 bug，当随机数是 0 时，返回的是空字符串,无法生成纯白色。\n\u002F\u002F 还存在 Hex颜色 位数不足bug。\n\u002F\u002F 修改：\nfunction randomHexColor8() {\n    return (\n        \"#\" +\n        ((color) => {\n            return new Array(7 - color.length).join(\"0\") + color; \u002F\u002F 不足 6 位前面补 0\n        })((Math.random() * 0x1000000) \u003C\u003C 0).toString(16)\n        \u002F\u002F 0x1000000 相当于 0xffffff + 1,确保可以取到 0xffffff\n    );\n}\n",[25,739,740,749,779,794,821,841,854,859,869,874,882,886,890,907,914,922,937,970,983,992,1009,1021,1027,1033,1038,1048,1061,1077,1112,1136,1142,1150,1155,1160,1176,1183,1209,1216,1270,1276,1292,1297,1302,1312,1318,1373,1378,1383,1389,1394,1400,1410,1416,1450,1455,1460,1470,1476,1483,1490,1511,1525,1542,1547,1552,1562,1568,1609,1614,1620,1626,1632,1642,1649,1656,1670,1713,1744,1750,1755],{"__ignoreMap":137},[141,741,742,744,747],{"class":143,"line":144},[141,743,148],{"class":147},[141,745,746],{"class":151}," randomHexColor0",[141,748,156],{"class":155},[141,750,751,753,756,758,761,765,767,770,773,776],{"class":143,"line":159},[141,752,162],{"class":147},[141,754,755],{"class":151}," color",[141,757,169],{"class":147},[141,759,760],{"class":155}," (",[141,762,764],{"class":763},"s4XuR","colorStr",[141,766,169],{"class":147},[141,768,769],{"class":261}," \"\"",[141,771,772],{"class":155},") ",[141,774,775],{"class":147},"=>",[141,777,778],{"class":155}," {\n",[141,780,781,784,787,789,792],{"class":143,"line":196},[141,782,783],{"class":147},"        const",[141,785,786],{"class":165}," str",[141,788,169],{"class":147},[141,790,791],{"class":261}," \"0123456789abcdef\"",[141,793,282],{"class":155},[141,795,796,799,802,805,807,809,811,813,815,818],{"class":143,"line":222},[141,797,798],{"class":155},"        colorStr ",[141,800,801],{"class":147},"+=",[141,803,804],{"class":155}," str[Math.",[141,806,175],{"class":151},[141,808,178],{"class":155},[141,810,181],{"class":151},[141,812,184],{"class":155},[141,814,187],{"class":147},[141,816,817],{"class":165}," 16",[141,819,820],{"class":155},")];\n",[141,822,823,826,829,832,835,838],{"class":143,"line":248},[141,824,825],{"class":147},"        if",[141,827,828],{"class":155}," (colorStr.",[141,830,831],{"class":165},"length",[141,833,834],{"class":147}," ===",[141,836,837],{"class":165}," 6",[141,839,840],{"class":155},") {\n",[141,842,843,846,849,851],{"class":143,"line":255},[141,844,845],{"class":147},"            return",[141,847,848],{"class":261}," \"#\"",[141,850,533],{"class":147},[141,852,853],{"class":155}," colorStr;\n",[141,855,856],{"class":143,"line":285},[141,857,858],{"class":155},"        }\n",[141,860,861,864,866],{"class":143,"line":430},[141,862,863],{"class":147},"        return",[141,865,755],{"class":151},[141,867,868],{"class":155},"(colorStr);\n",[141,870,871],{"class":143,"line":435},[141,872,873],{"class":155},"    };\n",[141,875,876,878,880],{"class":143,"line":440},[141,877,258],{"class":147},[141,879,755],{"class":151},[141,881,397],{"class":155},[141,883,884],{"class":143,"line":450},[141,885,288],{"class":155},[141,887,888],{"class":143,"line":475},[141,889,252],{"emptyLinePlaceholder":251},[141,891,892,895,898,900,903,905],{"class":143,"line":500},[141,893,894],{"class":147},"const",[141,896,897],{"class":151}," randomHexColor1",[141,899,169],{"class":147},[141,901,902],{"class":155}," () ",[141,904,775],{"class":147},[141,906,778],{"class":155},[141,908,909,911],{"class":143,"line":525},[141,910,258],{"class":147},[141,912,913],{"class":155}," (\n",[141,915,916,919],{"class":143,"line":566},[141,917,918],{"class":261},"        \"#\"",[141,920,921],{"class":147}," +\n",[141,923,925,928,930,932,935],{"class":143,"line":924},16,[141,926,927],{"class":155},"        (",[141,929,148],{"class":147},[141,931,760],{"class":155},[141,933,934],{"class":763},"color",[141,936,840],{"class":155},[141,938,940,942,945,947,949,952,954,956,958,960,962,964,967],{"class":143,"line":939},17,[141,941,845],{"class":147},[141,943,944],{"class":155}," (color ",[141,946,801],{"class":147},[141,948,791],{"class":261},[141,950,951],{"class":155},"[Math.",[141,953,175],{"class":151},[141,955,178],{"class":155},[141,957,181],{"class":151},[141,959,184],{"class":155},[141,961,187],{"class":147},[141,963,817],{"class":165},[141,965,966],{"class":155},")]) ",[141,968,969],{"class":147},"&&\n",[141,971,973,976,978,980],{"class":143,"line":972},18,[141,974,975],{"class":155},"                color.",[141,977,831],{"class":165},[141,979,834],{"class":147},[141,981,982],{"class":165}," 6\n",[141,984,986,989],{"class":143,"line":985},19,[141,987,988],{"class":147},"                ?",[141,990,991],{"class":155}," color\n",[141,993,995,998,1001,1003,1006],{"class":143,"line":994},20,[141,996,997],{"class":147},"                :",[141,999,1000],{"class":165}," arguments",[141,1002,679],{"class":155},[141,1004,1005],{"class":151},"callee",[141,1007,1008],{"class":155},"(color);\n",[141,1010,1012,1015,1018],{"class":143,"line":1011},21,[141,1013,1014],{"class":155},"        })(",[141,1016,1017],{"class":261},"\"\"",[141,1019,1020],{"class":155},")\n",[141,1022,1024],{"class":143,"line":1023},22,[141,1025,1026],{"class":155},"    );\n",[141,1028,1030],{"class":143,"line":1029},23,[141,1031,1032],{"class":155},"};\n",[141,1034,1036],{"class":143,"line":1035},24,[141,1037,252],{"emptyLinePlaceholder":251},[141,1039,1041,1043,1046],{"class":143,"line":1040},25,[141,1042,148],{"class":147},[141,1044,1045],{"class":151}," randomHexColor2",[141,1047,156],{"class":155},[141,1049,1051,1053,1055,1057,1059],{"class":143,"line":1050},26,[141,1052,162],{"class":147},[141,1054,786],{"class":165},[141,1056,169],{"class":147},[141,1058,791],{"class":261},[141,1060,282],{"class":155},[141,1062,1064,1067,1070,1073,1075],{"class":143,"line":1063},27,[141,1065,1066],{"class":147},"    let",[141,1068,1069],{"class":155}," color ",[141,1071,1072],{"class":147},"=",[141,1074,848],{"class":261},[141,1076,282],{"class":155},[141,1078,1080,1083,1085,1088,1091,1093,1096,1099,1102,1104,1107,1110],{"class":143,"line":1079},28,[141,1081,1082],{"class":147},"    for",[141,1084,760],{"class":155},[141,1086,1087],{"class":147},"let",[141,1089,1090],{"class":155}," i ",[141,1092,1072],{"class":147},[141,1094,1095],{"class":165}," 0",[141,1097,1098],{"class":155},"; i ",[141,1100,1101],{"class":147},"\u003C",[141,1103,837],{"class":165},[141,1105,1106],{"class":155},"; i",[141,1108,1109],{"class":147},"++",[141,1111,840],{"class":155},[141,1113,1115,1118,1120,1122,1124,1126,1128,1130,1132,1134],{"class":143,"line":1114},29,[141,1116,1117],{"class":155},"        color ",[141,1119,801],{"class":147},[141,1121,804],{"class":155},[141,1123,175],{"class":151},[141,1125,178],{"class":155},[141,1127,181],{"class":151},[141,1129,184],{"class":155},[141,1131,187],{"class":147},[141,1133,817],{"class":165},[141,1135,820],{"class":155},[141,1137,1139],{"class":143,"line":1138},30,[141,1140,1141],{"class":155},"    }\n",[141,1143,1145,1147],{"class":143,"line":1144},31,[141,1146,258],{"class":147},[141,1148,1149],{"class":155}," color;\n",[141,1151,1153],{"class":143,"line":1152},32,[141,1154,288],{"class":155},[141,1156,1158],{"class":143,"line":1157},33,[141,1159,252],{"emptyLinePlaceholder":251},[141,1161,1163,1165,1168,1170,1172,1174],{"class":143,"line":1162},34,[141,1164,894],{"class":147},[141,1166,1167],{"class":151}," randomHexColor3",[141,1169,169],{"class":147},[141,1171,902],{"class":155},[141,1173,775],{"class":147},[141,1175,778],{"class":155},[141,1177,1179],{"class":143,"line":1178},35,[141,1180,1182],{"class":1181},"sJ8bj","    \u002F\u002F 传入 Math 对象，用 Hex 的长度来递归调用自身\n",[141,1184,1186,1188,1190,1192,1194,1197,1199,1202,1204,1207],{"class":143,"line":1185},36,[141,1187,258],{"class":147},[141,1189,760],{"class":155},[141,1191,148],{"class":147},[141,1193,760],{"class":155},[141,1195,1196],{"class":763},"m",[141,1198,58],{"class":155},[141,1200,1201],{"class":763},"s",[141,1203,58],{"class":155},[141,1205,1206],{"class":763},"c",[141,1208,840],{"class":155},[141,1210,1212,1214],{"class":143,"line":1211},37,[141,1213,863],{"class":147},[141,1215,913],{"class":155},[141,1217,1219,1222,1225,1227,1229,1231,1234,1237,1240,1242,1245,1247,1249,1251,1254,1256,1259,1261,1263,1265,1267],{"class":143,"line":1218},38,[141,1220,1221],{"class":155},"            (c ",[141,1223,1224],{"class":147},"?",[141,1226,1000],{"class":165},[141,1228,679],{"class":155},[141,1230,1005],{"class":151},[141,1232,1233],{"class":155},"(m, s, c ",[141,1235,1236],{"class":147},"-",[141,1238,1239],{"class":165}," 1",[141,1241,772],{"class":155},[141,1243,1244],{"class":147},":",[141,1246,848],{"class":261},[141,1248,772],{"class":155},[141,1250,539],{"class":147},[141,1252,1253],{"class":155}," s[m.",[141,1255,175],{"class":151},[141,1257,1258],{"class":155},"(m.",[141,1260,181],{"class":151},[141,1262,184],{"class":155},[141,1264,187],{"class":147},[141,1266,817],{"class":165},[141,1268,1269],{"class":155},")]\n",[141,1271,1273],{"class":143,"line":1272},39,[141,1274,1275],{"class":155},"        );\n",[141,1277,1279,1282,1285,1287,1290],{"class":143,"line":1278},40,[141,1280,1281],{"class":155},"    })(Math, ",[141,1283,1284],{"class":261},"\"0123456789abcdef\"",[141,1286,58],{"class":155},[141,1288,1289],{"class":165},"5",[141,1291,193],{"class":155},[141,1293,1295],{"class":143,"line":1294},41,[141,1296,1032],{"class":155},[141,1298,1300],{"class":143,"line":1299},42,[141,1301,252],{"emptyLinePlaceholder":251},[141,1303,1305,1307,1310],{"class":143,"line":1304},43,[141,1306,148],{"class":147},[141,1308,1309],{"class":151}," randomHexColor4",[141,1311,156],{"class":155},[141,1313,1315],{"class":143,"line":1314},44,[141,1316,1317],{"class":1181},"    \u002F\u002F 转为 16 进制小数字符串， slice(2, 8) 截取小数点后 6 位\n",[141,1319,1321,1323,1325,1327,1329,1331,1334,1336,1338,1340,1343,1346,1348,1351,1353,1356,1358,1361,1363,1366,1368,1371],{"class":143,"line":1320},45,[141,1322,258],{"class":147},[141,1324,848],{"class":261},[141,1326,533],{"class":147},[141,1328,172],{"class":155},[141,1330,181],{"class":151},[141,1332,1333],{"class":155},"().",[141,1335,682],{"class":151},[141,1337,685],{"class":155},[141,1339,688],{"class":165},[141,1341,1342],{"class":155},").",[141,1344,1345],{"class":151},"slice",[141,1347,685],{"class":155},[141,1349,1350],{"class":165},"2",[141,1352,58],{"class":155},[141,1354,1355],{"class":165},"8",[141,1357,1342],{"class":155},[141,1359,1360],{"class":151},"padStart",[141,1362,685],{"class":155},[141,1364,1365],{"class":165},"6",[141,1367,58],{"class":155},[141,1369,1370],{"class":261},"\"0\"",[141,1372,193],{"class":155},[141,1374,1376],{"class":143,"line":1375},46,[141,1377,288],{"class":155},[141,1379,1381],{"class":143,"line":1380},47,[141,1382,252],{"emptyLinePlaceholder":251},[141,1384,1386],{"class":143,"line":1385},48,[141,1387,1388],{"class":1181},"\u002F\u002F Hex 颜色取值范围是 0 ~ 0xffffff，即 0x000000 ~ 0xffffff，表示 24 位颜色值\n",[141,1390,1392],{"class":143,"line":1391},49,[141,1393,252],{"emptyLinePlaceholder":251},[141,1395,1397],{"class":143,"line":1396},50,[141,1398,1399],{"class":1181},"\u002F\u002F 随机生成 0 ~ 0xffffff 之间的整数\n",[141,1401,1403,1405,1408],{"class":143,"line":1402},51,[141,1404,148],{"class":147},[141,1406,1407],{"class":151}," randomHexColor5",[141,1409,156],{"class":155},[141,1411,1413],{"class":143,"line":1412},52,[141,1414,1415],{"class":1181},"    \u002F\u002F 将 0xffffff 转为 10 进制，进行random取值后，再转为字符串\n",[141,1417,1419,1421,1423,1425,1427,1429,1431,1433,1435,1437,1440,1442,1444,1446,1448],{"class":143,"line":1418},53,[141,1420,258],{"class":147},[141,1422,848],{"class":261},[141,1424,533],{"class":147},[141,1426,172],{"class":155},[141,1428,175],{"class":151},[141,1430,178],{"class":155},[141,1432,181],{"class":151},[141,1434,184],{"class":155},[141,1436,187],{"class":147},[141,1438,1439],{"class":165}," 16777215",[141,1441,1342],{"class":155},[141,1443,682],{"class":151},[141,1445,685],{"class":155},[141,1447,688],{"class":165},[141,1449,193],{"class":155},[141,1451,1453],{"class":143,"line":1452},54,[141,1454,288],{"class":155},[141,1456,1458],{"class":143,"line":1457},55,[141,1459,252],{"emptyLinePlaceholder":251},[141,1461,1463,1465,1468],{"class":143,"line":1462},56,[141,1464,148],{"class":147},[141,1466,1467],{"class":151}," randomHexColor6",[141,1469,156],{"class":155},[141,1471,1473],{"class":143,"line":1472},57,[141,1474,1475],{"class":1181},"    \u002F\u002F 转为 16 进制，不足 6 位前面补 0\n",[141,1477,1479,1481],{"class":143,"line":1478},58,[141,1480,258],{"class":147},[141,1482,913],{"class":155},[141,1484,1486,1488],{"class":143,"line":1485},59,[141,1487,918],{"class":261},[141,1489,921],{"class":147},[141,1491,1493,1496,1498,1500,1502,1504,1506,1509],{"class":143,"line":1492},60,[141,1494,1495],{"class":155},"        Math.",[141,1497,175],{"class":151},[141,1499,178],{"class":155},[141,1501,181],{"class":151},[141,1503,184],{"class":155},[141,1505,187],{"class":147},[141,1507,1508],{"class":165}," 0xffffff",[141,1510,1020],{"class":155},[141,1512,1514,1517,1519,1521,1523],{"class":143,"line":1513},61,[141,1515,1516],{"class":155},"            .",[141,1518,682],{"class":151},[141,1520,685],{"class":155},[141,1522,688],{"class":165},[141,1524,1020],{"class":155},[141,1526,1528,1530,1532,1534,1536,1538,1540],{"class":143,"line":1527},62,[141,1529,1516],{"class":155},[141,1531,1360],{"class":151},[141,1533,685],{"class":155},[141,1535,1365],{"class":165},[141,1537,58],{"class":155},[141,1539,1370],{"class":261},[141,1541,1020],{"class":155},[141,1543,1545],{"class":143,"line":1544},63,[141,1546,1026],{"class":155},[141,1548,1550],{"class":143,"line":1549},64,[141,1551,288],{"class":155},[141,1553,1555,1557,1560],{"class":143,"line":1554},65,[141,1556,148],{"class":147},[141,1558,1559],{"class":151}," randomHexColor7",[141,1561,156],{"class":155},[141,1563,1565],{"class":143,"line":1564},66,[141,1566,1567],{"class":1181},"    \u002F\u002F  \u003C\u003C 0 获取随机数后左移 0 位，相当于取整，替代 Math.floor\n",[141,1569,1571,1573,1575,1577,1579,1581,1584,1586,1588,1590,1592,1594,1597,1599,1601,1603,1605,1607],{"class":143,"line":1570},67,[141,1572,258],{"class":147},[141,1574,848],{"class":261},[141,1576,533],{"class":147},[141,1578,172],{"class":155},[141,1580,175],{"class":151},[141,1582,1583],{"class":155},"((Math.",[141,1585,181],{"class":151},[141,1587,184],{"class":155},[141,1589,187],{"class":147},[141,1591,1508],{"class":165},[141,1593,772],{"class":155},[141,1595,1596],{"class":147},"\u003C\u003C",[141,1598,1095],{"class":165},[141,1600,1342],{"class":155},[141,1602,682],{"class":151},[141,1604,685],{"class":155},[141,1606,688],{"class":165},[141,1608,193],{"class":155},[141,1610,1612],{"class":143,"line":1611},68,[141,1613,288],{"class":155},[141,1615,1617],{"class":143,"line":1616},69,[141,1618,1619],{"class":1181},"\u002F\u002F toString(16) 存在 bug，当随机数是 0 时，返回的是空字符串,无法生成纯白色。\n",[141,1621,1623],{"class":143,"line":1622},70,[141,1624,1625],{"class":1181},"\u002F\u002F 还存在 Hex颜色 位数不足bug。\n",[141,1627,1629],{"class":143,"line":1628},71,[141,1630,1631],{"class":1181},"\u002F\u002F 修改：\n",[141,1633,1635,1637,1640],{"class":143,"line":1634},72,[141,1636,148],{"class":147},[141,1638,1639],{"class":151}," randomHexColor8",[141,1641,156],{"class":155},[141,1643,1645,1647],{"class":143,"line":1644},73,[141,1646,258],{"class":147},[141,1648,913],{"class":155},[141,1650,1652,1654],{"class":143,"line":1651},74,[141,1653,918],{"class":261},[141,1655,921],{"class":147},[141,1657,1659,1662,1664,1666,1668],{"class":143,"line":1658},75,[141,1660,1661],{"class":155},"        ((",[141,1663,934],{"class":763},[141,1665,772],{"class":155},[141,1667,775],{"class":147},[141,1669,778],{"class":155},[141,1671,1673,1675,1678,1681,1683,1686,1689,1692,1694,1696,1699,1701,1703,1705,1707,1710],{"class":143,"line":1672},76,[141,1674,845],{"class":147},[141,1676,1677],{"class":147}," new",[141,1679,1680],{"class":151}," Array",[141,1682,685],{"class":155},[141,1684,1685],{"class":165},"7",[141,1687,1688],{"class":147}," -",[141,1690,1691],{"class":155}," color.",[141,1693,831],{"class":165},[141,1695,1342],{"class":155},[141,1697,1698],{"class":151},"join",[141,1700,685],{"class":155},[141,1702,1370],{"class":261},[141,1704,772],{"class":155},[141,1706,539],{"class":147},[141,1708,1709],{"class":155}," color; ",[141,1711,1712],{"class":1181},"\u002F\u002F 不足 6 位前面补 0\n",[141,1714,1716,1719,1721,1723,1725,1728,1730,1732,1734,1736,1738,1740,1742],{"class":143,"line":1715},77,[141,1717,1718],{"class":155},"        })((Math.",[141,1720,181],{"class":151},[141,1722,184],{"class":155},[141,1724,187],{"class":147},[141,1726,1727],{"class":165}," 0x1000000",[141,1729,772],{"class":155},[141,1731,1596],{"class":147},[141,1733,1095],{"class":165},[141,1735,1342],{"class":155},[141,1737,682],{"class":151},[141,1739,685],{"class":155},[141,1741,688],{"class":165},[141,1743,1020],{"class":155},[141,1745,1747],{"class":143,"line":1746},78,[141,1748,1749],{"class":1181},"        \u002F\u002F 0x1000000 相当于 0xffffff + 1,确保可以取到 0xffffff\n",[141,1751,1753],{"class":143,"line":1752},79,[141,1754,1026],{"class":155},[141,1756,1758],{"class":143,"line":1757},80,[141,1759,288],{"class":155},[14,1761,1763],{"id":1762},"随机-hsl-颜色","随机 HSL 颜色",[128,1765,1766],{},"随机 0 ~ 360 之间的整数，表示色相，随机 0.0% ~ 100.0% 之间的数，表示饱和度和亮度，再随机一个 0 ~ 1 之间的数，表示透明度。",[132,1768,1770],{"className":134,"code":1769,"language":136,"meta":137,"style":137},"function randomHslColor() {\n    return (\n        \"hsl(\" +\n        Math.random() * 360 +\n        \",\" +\n        Math.random() * 100 +\n        \"%\" +\n        \",\" +\n        Math.random() * 100 +\n        \"%)\"\n    );\n}\n",[25,1771,1772,1781,1787,1794,1809,1816,1831,1838,1844,1858,1863,1867],{"__ignoreMap":137},[141,1773,1774,1776,1779],{"class":143,"line":144},[141,1775,148],{"class":147},[141,1777,1778],{"class":151}," randomHslColor",[141,1780,156],{"class":155},[141,1782,1783,1785],{"class":143,"line":159},[141,1784,258],{"class":147},[141,1786,913],{"class":155},[141,1788,1789,1792],{"class":143,"line":196},[141,1790,1791],{"class":261},"        \"hsl(\"",[141,1793,921],{"class":147},[141,1795,1796,1798,1800,1802,1804,1807],{"class":143,"line":222},[141,1797,1495],{"class":155},[141,1799,181],{"class":151},[141,1801,184],{"class":155},[141,1803,187],{"class":147},[141,1805,1806],{"class":165}," 360",[141,1808,921],{"class":147},[141,1810,1811,1814],{"class":143,"line":248},[141,1812,1813],{"class":261},"        \",\"",[141,1815,921],{"class":147},[141,1817,1818,1820,1822,1824,1826,1829],{"class":143,"line":255},[141,1819,1495],{"class":155},[141,1821,181],{"class":151},[141,1823,184],{"class":155},[141,1825,187],{"class":147},[141,1827,1828],{"class":165}," 100",[141,1830,921],{"class":147},[141,1832,1833,1836],{"class":143,"line":285},[141,1834,1835],{"class":261},"        \"%\"",[141,1837,921],{"class":147},[141,1839,1840,1842],{"class":143,"line":430},[141,1841,1813],{"class":261},[141,1843,921],{"class":147},[141,1845,1846,1848,1850,1852,1854,1856],{"class":143,"line":435},[141,1847,1495],{"class":155},[141,1849,181],{"class":151},[141,1851,184],{"class":155},[141,1853,187],{"class":147},[141,1855,1828],{"class":165},[141,1857,921],{"class":147},[141,1859,1860],{"class":143,"line":440},[141,1861,1862],{"class":261},"        \"%)\"\n",[141,1864,1865],{"class":143,"line":450},[141,1866,1026],{"class":155},[141,1868,1869],{"class":143,"line":475},[141,1870,288],{"class":155},[14,1872,1874],{"id":1873},"随机-hsla-颜色","随机 HSLA 颜色",[128,1876,1877],{},"随机 hsl 颜色后，再随机一个 0 ~ 1 之间的数，表示透明度。拼装颜色值字符串即可",[132,1879,1881],{"className":134,"code":1880,"language":136,"meta":137,"style":137},"function randomHslaColor() {\n    return (\n        \"hsla(\" +\n        Math.random() * 360 +\n        \",\" +\n        Math.random() * 100 +\n        \"%\" +\n        \",\" +\n        Math.random() * 100 +\n        \"%\" +\n        \",\" +\n        Math.random()\n    );\n}\n",[25,1882,1883,1892,1898,1905,1919,1925,1939,1945,1951,1965,1971,1977,1986,1990],{"__ignoreMap":137},[141,1884,1885,1887,1890],{"class":143,"line":144},[141,1886,148],{"class":147},[141,1888,1889],{"class":151}," randomHslaColor",[141,1891,156],{"class":155},[141,1893,1894,1896],{"class":143,"line":159},[141,1895,258],{"class":147},[141,1897,913],{"class":155},[141,1899,1900,1903],{"class":143,"line":196},[141,1901,1902],{"class":261},"        \"hsla(\"",[141,1904,921],{"class":147},[141,1906,1907,1909,1911,1913,1915,1917],{"class":143,"line":222},[141,1908,1495],{"class":155},[141,1910,181],{"class":151},[141,1912,184],{"class":155},[141,1914,187],{"class":147},[141,1916,1806],{"class":165},[141,1918,921],{"class":147},[141,1920,1921,1923],{"class":143,"line":248},[141,1922,1813],{"class":261},[141,1924,921],{"class":147},[141,1926,1927,1929,1931,1933,1935,1937],{"class":143,"line":255},[141,1928,1495],{"class":155},[141,1930,181],{"class":151},[141,1932,184],{"class":155},[141,1934,187],{"class":147},[141,1936,1828],{"class":165},[141,1938,921],{"class":147},[141,1940,1941,1943],{"class":143,"line":285},[141,1942,1835],{"class":261},[141,1944,921],{"class":147},[141,1946,1947,1949],{"class":143,"line":430},[141,1948,1813],{"class":261},[141,1950,921],{"class":147},[141,1952,1953,1955,1957,1959,1961,1963],{"class":143,"line":435},[141,1954,1495],{"class":155},[141,1956,181],{"class":151},[141,1958,184],{"class":155},[141,1960,187],{"class":147},[141,1962,1828],{"class":165},[141,1964,921],{"class":147},[141,1966,1967,1969],{"class":143,"line":440},[141,1968,1835],{"class":261},[141,1970,921],{"class":147},[141,1972,1973,1975],{"class":143,"line":450},[141,1974,1813],{"class":261},[141,1976,921],{"class":147},[141,1978,1979,1981,1983],{"class":143,"line":475},[141,1980,1495],{"class":155},[141,1982,181],{"class":151},[141,1984,1985],{"class":155},"()\n",[141,1987,1988],{"class":143,"line":500},[141,1989,1026],{"class":155},[141,1991,1992],{"class":143,"line":525},[141,1993,288],{"class":155},[10,1995,1996],{"id":1996},"批量重命名图片",[128,1998,1999],{},"一次性对某一文件夹下多个图片文件进行名称的修改与调整，不用逐一手动重命名图片，快速更新文件名，执行脚本自动修改图片名",[128,2001,2002,2003,2006,2007],{},"自动",[25,2004,2005],{},"“9a9f0a7f89a7.jpg”","，之类的图片名为",[25,2008,2009],{},"002.jpg",[128,2011,2012,2013,2016],{},"我这里将设置文件重命名为从",[25,2014,2015],{},"0 ~ 999","，可以根据要命名的图片数量自定义设置。",[128,2018,2019],{},"代码如下：",[132,2021,2023],{"className":134,"code":2022,"language":136,"meta":137,"style":137},"const fs = require(\"fs\");\nconst path = require(\"path\");\nconst folderPath = \".\u002FtestPicture\";\nconst imgType = [\"jpg\", \"png\", \"jpeg\", \"gif\", \"bmp\", \"tiff\", \"ico\", \"webp\"];\n\nlet count = 0;\nfunction pad(num, size) {\n    let s = num + \"\";\n    while (s.length \u003C size) s = \"0\" + s;\n    return s;\n}\n\nfs.readdir(folderPath, (err, files) => {\n    try {\n        if (err) {\n            console.error(\"读取文件出错\", err);\n            return;\n        }\n        files.forEach((file, index) => {\n            \u002F\u002F 如果用 path.extname() 获取扩展名，注意名称为空的额外处理\n            const ext = file.split(\".\").at(-1).toLowerCase();\n            debugger;\n            if (imgType.includes(ext)) {\n                const oldFilePath = path.join(folderPath, file);\n                const newFileName = pad(index, 3) + \".\" + ext;\n                const newFilePath = path.join(folderPath, newFileName);\n                fs.rename(oldFilePath, newFilePath, (err) => {\n                    debugger;\n                    if (err) console.error(\"重命名文件出错\", err);\n                });\n                count++;\n            }\n        });\n    } catch (error) {\n        throw new Error(error);\n    }\n});\n",[25,2024,2025,2044,2062,2076,2129,2133,2146,2165,2183,2209,2215,2219,2223,2248,2255,2262,2278,2284,2288,2313,2318,2358,2365,2379,2397,2426,2442,2461,2468,2485,2490,2499,2504,2509,2520,2533,2537],{"__ignoreMap":137},[141,2026,2027,2029,2032,2034,2037,2039,2042],{"class":143,"line":144},[141,2028,894],{"class":147},[141,2030,2031],{"class":165}," fs",[141,2033,169],{"class":147},[141,2035,2036],{"class":151}," require",[141,2038,685],{"class":155},[141,2040,2041],{"class":261},"\"fs\"",[141,2043,193],{"class":155},[141,2045,2046,2048,2051,2053,2055,2057,2060],{"class":143,"line":159},[141,2047,894],{"class":147},[141,2049,2050],{"class":165}," path",[141,2052,169],{"class":147},[141,2054,2036],{"class":151},[141,2056,685],{"class":155},[141,2058,2059],{"class":261},"\"path\"",[141,2061,193],{"class":155},[141,2063,2064,2066,2069,2071,2074],{"class":143,"line":196},[141,2065,894],{"class":147},[141,2067,2068],{"class":165}," folderPath",[141,2070,169],{"class":147},[141,2072,2073],{"class":261}," \".\u002FtestPicture\"",[141,2075,282],{"class":155},[141,2077,2078,2080,2083,2085,2088,2091,2093,2096,2098,2101,2103,2106,2108,2111,2113,2116,2118,2121,2123,2126],{"class":143,"line":222},[141,2079,894],{"class":147},[141,2081,2082],{"class":165}," imgType",[141,2084,169],{"class":147},[141,2086,2087],{"class":155}," [",[141,2089,2090],{"class":261},"\"jpg\"",[141,2092,58],{"class":155},[141,2094,2095],{"class":261},"\"png\"",[141,2097,58],{"class":155},[141,2099,2100],{"class":261},"\"jpeg\"",[141,2102,58],{"class":155},[141,2104,2105],{"class":261},"\"gif\"",[141,2107,58],{"class":155},[141,2109,2110],{"class":261},"\"bmp\"",[141,2112,58],{"class":155},[141,2114,2115],{"class":261},"\"tiff\"",[141,2117,58],{"class":155},[141,2119,2120],{"class":261},"\"ico\"",[141,2122,58],{"class":155},[141,2124,2125],{"class":261},"\"webp\"",[141,2127,2128],{"class":155},"];\n",[141,2130,2131],{"class":143,"line":248},[141,2132,252],{"emptyLinePlaceholder":251},[141,2134,2135,2137,2140,2142,2144],{"class":143,"line":255},[141,2136,1087],{"class":147},[141,2138,2139],{"class":155}," count ",[141,2141,1072],{"class":147},[141,2143,1095],{"class":165},[141,2145,282],{"class":155},[141,2147,2148,2150,2153,2155,2158,2160,2163],{"class":143,"line":285},[141,2149,148],{"class":147},[141,2151,2152],{"class":151}," pad",[141,2154,685],{"class":155},[141,2156,2157],{"class":763},"num",[141,2159,58],{"class":155},[141,2161,2162],{"class":763},"size",[141,2164,840],{"class":155},[141,2166,2167,2169,2172,2174,2177,2179,2181],{"class":143,"line":430},[141,2168,1066],{"class":147},[141,2170,2171],{"class":155}," s ",[141,2173,1072],{"class":147},[141,2175,2176],{"class":155}," num ",[141,2178,539],{"class":147},[141,2180,769],{"class":261},[141,2182,282],{"class":155},[141,2184,2185,2188,2191,2193,2196,2199,2201,2204,2206],{"class":143,"line":435},[141,2186,2187],{"class":147},"    while",[141,2189,2190],{"class":155}," (s.",[141,2192,831],{"class":165},[141,2194,2195],{"class":147}," \u003C",[141,2197,2198],{"class":155}," size) s ",[141,2200,1072],{"class":147},[141,2202,2203],{"class":261}," \"0\"",[141,2205,533],{"class":147},[141,2207,2208],{"class":155}," s;\n",[141,2210,2211,2213],{"class":143,"line":440},[141,2212,258],{"class":147},[141,2214,2208],{"class":155},[141,2216,2217],{"class":143,"line":450},[141,2218,288],{"class":155},[141,2220,2221],{"class":143,"line":475},[141,2222,252],{"emptyLinePlaceholder":251},[141,2224,2225,2228,2231,2234,2237,2239,2242,2244,2246],{"class":143,"line":500},[141,2226,2227],{"class":155},"fs.",[141,2229,2230],{"class":151},"readdir",[141,2232,2233],{"class":155},"(folderPath, (",[141,2235,2236],{"class":763},"err",[141,2238,58],{"class":155},[141,2240,2241],{"class":763},"files",[141,2243,772],{"class":155},[141,2245,775],{"class":147},[141,2247,778],{"class":155},[141,2249,2250,2253],{"class":143,"line":525},[141,2251,2252],{"class":147},"    try",[141,2254,778],{"class":155},[141,2256,2257,2259],{"class":143,"line":566},[141,2258,825],{"class":147},[141,2260,2261],{"class":155}," (err) {\n",[141,2263,2264,2267,2270,2272,2275],{"class":143,"line":924},[141,2265,2266],{"class":155},"            console.",[141,2268,2269],{"class":151},"error",[141,2271,685],{"class":155},[141,2273,2274],{"class":261},"\"读取文件出错\"",[141,2276,2277],{"class":155},", err);\n",[141,2279,2280,2282],{"class":143,"line":939},[141,2281,845],{"class":147},[141,2283,282],{"class":155},[141,2285,2286],{"class":143,"line":972},[141,2287,858],{"class":155},[141,2289,2290,2293,2296,2299,2302,2304,2307,2309,2311],{"class":143,"line":985},[141,2291,2292],{"class":155},"        files.",[141,2294,2295],{"class":151},"forEach",[141,2297,2298],{"class":155},"((",[141,2300,2301],{"class":763},"file",[141,2303,58],{"class":155},[141,2305,2306],{"class":763},"index",[141,2308,772],{"class":155},[141,2310,775],{"class":147},[141,2312,778],{"class":155},[141,2314,2315],{"class":143,"line":994},[141,2316,2317],{"class":1181},"            \u002F\u002F 如果用 path.extname() 获取扩展名，注意名称为空的额外处理\n",[141,2319,2320,2323,2326,2328,2331,2334,2336,2339,2341,2344,2346,2348,2351,2353,2356],{"class":143,"line":1011},[141,2321,2322],{"class":147},"            const",[141,2324,2325],{"class":165}," ext",[141,2327,169],{"class":147},[141,2329,2330],{"class":155}," file.",[141,2332,2333],{"class":151},"split",[141,2335,685],{"class":155},[141,2337,2338],{"class":261},"\".\"",[141,2340,1342],{"class":155},[141,2342,2343],{"class":151},"at",[141,2345,685],{"class":155},[141,2347,1236],{"class":147},[141,2349,2350],{"class":165},"1",[141,2352,1342],{"class":155},[141,2354,2355],{"class":151},"toLowerCase",[141,2357,397],{"class":155},[141,2359,2360,2363],{"class":143,"line":1023},[141,2361,2362],{"class":147},"            debugger",[141,2364,282],{"class":155},[141,2366,2367,2370,2373,2376],{"class":143,"line":1029},[141,2368,2369],{"class":147},"            if",[141,2371,2372],{"class":155}," (imgType.",[141,2374,2375],{"class":151},"includes",[141,2377,2378],{"class":155},"(ext)) {\n",[141,2380,2381,2384,2387,2389,2392,2394],{"class":143,"line":1035},[141,2382,2383],{"class":147},"                const",[141,2385,2386],{"class":165}," oldFilePath",[141,2388,169],{"class":147},[141,2390,2391],{"class":155}," path.",[141,2393,1698],{"class":151},[141,2395,2396],{"class":155},"(folderPath, file);\n",[141,2398,2399,2401,2404,2406,2408,2411,2414,2416,2418,2421,2423],{"class":143,"line":1040},[141,2400,2383],{"class":147},[141,2402,2403],{"class":165}," newFileName",[141,2405,169],{"class":147},[141,2407,2152],{"class":151},[141,2409,2410],{"class":155},"(index, ",[141,2412,2413],{"class":165},"3",[141,2415,772],{"class":155},[141,2417,539],{"class":147},[141,2419,2420],{"class":261}," \".\"",[141,2422,533],{"class":147},[141,2424,2425],{"class":155}," ext;\n",[141,2427,2428,2430,2433,2435,2437,2439],{"class":143,"line":1050},[141,2429,2383],{"class":147},[141,2431,2432],{"class":165}," newFilePath",[141,2434,169],{"class":147},[141,2436,2391],{"class":155},[141,2438,1698],{"class":151},[141,2440,2441],{"class":155},"(folderPath, newFileName);\n",[141,2443,2444,2447,2450,2453,2455,2457,2459],{"class":143,"line":1063},[141,2445,2446],{"class":155},"                fs.",[141,2448,2449],{"class":151},"rename",[141,2451,2452],{"class":155},"(oldFilePath, newFilePath, (",[141,2454,2236],{"class":763},[141,2456,772],{"class":155},[141,2458,775],{"class":147},[141,2460,778],{"class":155},[141,2462,2463,2466],{"class":143,"line":1079},[141,2464,2465],{"class":147},"                    debugger",[141,2467,282],{"class":155},[141,2469,2470,2473,2476,2478,2480,2483],{"class":143,"line":1114},[141,2471,2472],{"class":147},"                    if",[141,2474,2475],{"class":155}," (err) console.",[141,2477,2269],{"class":151},[141,2479,685],{"class":155},[141,2481,2482],{"class":261},"\"重命名文件出错\"",[141,2484,2277],{"class":155},[141,2486,2487],{"class":143,"line":1138},[141,2488,2489],{"class":155},"                });\n",[141,2491,2492,2495,2497],{"class":143,"line":1144},[141,2493,2494],{"class":155},"                count",[141,2496,1109],{"class":147},[141,2498,282],{"class":155},[141,2500,2501],{"class":143,"line":1152},[141,2502,2503],{"class":155},"            }\n",[141,2505,2506],{"class":143,"line":1157},[141,2507,2508],{"class":155},"        });\n",[141,2510,2511,2514,2517],{"class":143,"line":1162},[141,2512,2513],{"class":155},"    } ",[141,2515,2516],{"class":147},"catch",[141,2518,2519],{"class":155}," (error) {\n",[141,2521,2522,2525,2527,2530],{"class":143,"line":1178},[141,2523,2524],{"class":147},"        throw",[141,2526,1677],{"class":147},[141,2528,2529],{"class":151}," Error",[141,2531,2532],{"class":155},"(error);\n",[141,2534,2535],{"class":143,"line":1185},[141,2536,1141],{"class":155},[141,2538,2539],{"class":143,"line":1211},[141,2540,2541],{"class":155},"});\n",[128,2543,2544],{},"写的比较草率，欢迎指正代码中bug，以及更优写法",[2546,2547,2548],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":137,"searchDepth":196,"depth":196,"links":2550},[2551,2552,2553,2554,2555,2556],{"id":16,"depth":159,"text":16},{"id":125,"depth":159,"text":126},{"id":291,"depth":159,"text":292},{"id":571,"depth":159,"text":572},{"id":1762,"depth":159,"text":1763},{"id":1873,"depth":159,"text":1874},"toolchain","2024-12-11","几种生成随机 RGB \u002F HEX 颜色的实现方式与各自适用场景。",false,"md",{},"\u002Fdocs\u002Frandom-color-utils",{"title":5,"description":2559},null,"docs\u002Frandom-color-utils",[2568,2569],"javascript","cheatsheet","lOIugs64mC8hiT5zWjLI8lCUHuUpF51aP_inL7F0MEc",[2572,2584,2591,2593,2603,2611,2620,2625,2633,2638,2645,2651,2658,2665,2671],{"path":2573,"title":2574,"description":2575,"date":2576,"category":2577,"tags":2578},"\u002Fdocs\u002Ffrontend-coding-standards","前端团队编码规范","HTML \u002F CSS \u002F JavaScript 三端统一的团队编码约定，含缩进、命名、语法与禁用项，可直接作为 Code Review 依据。","2025-12-17","standards",[2579,2580,2568,2581,2582,2583],"html","css","es6","best-practice","guide",{"path":2585,"title":2586,"description":2587,"date":2588,"category":2557,"tags":2589},"\u002Fdocs\u002Fwindows-mklink","Windows mklink 符号链接用法","mklink 各参数区别与实用场景：目录联接、符号链接与硬链接的选择。","2024-12-18",[2590,2569],"windows",{"path":2563,"title":5,"description":2559,"date":2558,"category":2557,"tags":2592},[2568,2569],{"path":2594,"title":2595,"description":2596,"date":2597,"category":2598,"tags":2599},"\u002Fdocs\u002Fcanvas-vs-svg","Canvas 与 SVG 绘图方案选型","对比 Canvas 与 SVG 两种绘图方案的优缺点与适用场景，给出选型判断依据。","2024-12-09","visualization",[2600,2601,2602,2582],"canvas","svg","performance",{"path":2604,"title":2605,"description":2606,"date":2607,"category":2557,"tags":2608},"\u002Fdocs\u002Ffree-commercial-fonts","免费可商用字体整理","整理思源黑体、思源宋体等可商用中文字体，规避字体版权风险。","2024-11-03",[2609,2580,2610],"font","notes",{"path":2612,"title":2613,"description":2614,"date":2607,"category":2615,"tags":2616},"\u002Fdocs\u002Finterview-browser-network","浏览器与网络考点","从输入 URL 到页面呈现的完整链路，涵盖渲染流程、回流重绘、HTTP 报文与状态码、跨域同源策略与常见攻击方式。","interview",[2617,2618,2619,2602,2610],"browser","http","network",{"path":2621,"title":2622,"description":2623,"date":2607,"category":2615,"tags":2624},"\u002Fdocs\u002Finterview-css-layout","CSS 与布局考点","em 与 rem 的区别、移动端三种适配方案对比、viewport 标准设置与 REM 布局的媒体查询实现。",[2580,2579,2582,2610],{"path":2626,"title":2627,"description":2628,"date":2607,"category":2615,"tags":2629},"\u002Fdocs\u002Finterview-framework-tooling","框架与工程化考点","React diff 与 setState 机制、Redux 核心组成、Vue 常考清单，以及 Webpack、Vite、Git 的面试要点。",[2630,2568,2631,2632,2610],"vue","webpack","vite",{"path":2634,"title":2635,"description":2636,"date":2607,"category":2615,"tags":2637},"\u002Fdocs\u002Finterview-javascript-core","JavaScript 核心考点","数据类型、this 绑定、闭包、原型链、异步与数组方法，前端面试中 JS 部分的高频考点与代码示例。",[2568,2581,2610],{"path":2639,"title":2640,"description":2641,"date":2607,"category":2642,"tags":2643},"\u002Fdocs\u002Fjs-module-systems","JavaScript 模块化方案","梳理 CommonJS、AMD、ES Module 等模块化方案的差异与使用方式。","fundamentals",[2568,2644,2581,2610],"module-system",{"path":2646,"title":2647,"description":2648,"date":2607,"category":2642,"tags":2649},"\u002Fdocs\u002Fwebsocket-basics","WebSocket 基础","WebSocket 全双工通信协议的事件、方法与基本用法整理。",[2650,2619,2568,2610],"websocket",{"path":2652,"title":2653,"description":2654,"date":2655,"category":2598,"tags":2656},"\u002Fdocs\u002Fgojs-getting-started","GoJS 入门实战","从引入方式、画布初始化到节点模板与数据绑定，一份可直接上手的 GoJS 流程图开发笔记。","2024-08-22",[2657,2568,2610],"gojs",{"path":2659,"title":2660,"description":2661,"date":2662,"category":2598,"tags":2663},"\u002Fdocs\u002Fecharts-options-notes","ECharts 配置项速查","整理 ECharts 常用 option 配置：数据格式、坐标轴、图例与交互项的实际用法。","2024-08-09",[2664,2568,2569],"echarts",{"path":2666,"title":2667,"description":2668,"date":2669,"category":2642,"tags":2670},"\u002Fdocs\u002Fhttp-status-codes","HTTP 响应状态码详解","按 1xx 到 5xx 分类梳理 HTTP 状态码的含义与典型使用场景。","2024-06-27",[2618,2619,2569],{"path":2672,"title":2673,"description":2674,"date":2675,"category":2642,"tags":2676},"\u002Fdocs\u002Fhtml-basics","HTML 基础笔记","HTML 语法规范、常用标签、表格与表单元素速查。","2022-06-10",[2579,2610,2569],1788337378774]