臨摹微笑
2023-05-25 16:32:54
我是 JS 的新手。我懷疑它與控制臺(tái)上的打印輸出有關(guān)。有人可以幫我理解以下 JS 代碼片段中的功能嗎?非常感激!!JS代碼片段:console.log("Registering Machines && Units...");(function() { var P = ["\\", "|", "/", "-"]; var x = 0; return setInterval(function() { process.stdout.write("\r" + P[x++]); x &= 3; }, 250);})();
1 回答
胡子哥哥
TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超6個(gè)贊
這基本上是控制臺(tái)中的加載動(dòng)畫(huà),而不是瀏覽器中的加載動(dòng)畫(huà),而是類(lèi)似命令提示符的東西。
你可以認(rèn)為process.stdout.write("\r" + P[x++]);aconsole.log()\r是一個(gè)回車(chē)符;它告訴您的終端仿真器將光標(biāo)移動(dòng)到該行的開(kāi)頭。光標(biāo)是下一個(gè)字符將被渲染的位置。因此,打印 \r 允許覆蓋終端仿真器的當(dāng)前行。 ?x &= 3;是一個(gè) AND 按位運(yùn)算,它將確保 x 在超過(guò) 3 時(shí)始終設(shè)置為 0,以便您有一種循環(huán),因?yàn)?code>P.length 等于 3,它基本上是執(zhí)行此操作的捷徑,if(x>3)x=0?
所以所有這些都在同一位置重復(fù)打印字符 \\、|、/、- 以產(chǎn)生旋轉(zhuǎn) | 的錯(cuò)覺(jué)?在終端。
添加回答
舉報(bào)
0/150
提交
取消
