<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【第28題】console的異步性怎么理解?

          共 1066字,需瀏覽 3分鐘

           ·

          2022-10-25 08:38

          面試題目(字節(jié)):

          console的異步性怎么理解?

          答案解析:

          console我一直以為是同步執(zhí)行的,直到在一本書上看到,才了解到console本身有異步的特性。雖然在平常開發(fā)中經(jīng)常使用console,但是真的沒有意識到它的異步性。

          下面就看下異步的實例

          基礎(chǔ)類型

          該類型是我們開發(fā)中經(jīng)常使用的,正是這種打印結(jié)果,讓我們認為console是同步的。其實這種case也是異步的,因為執(zhí)行到console時,拍攝了快照,記錄了當時的變量值,當代碼執(zhí)行完返回到事件隊列時,直接打印了前面記錄的快照造成的。

          let foo = 'bar';
          console.log(foo);
          foo = 'test';
          image

          引用類型

          引用類型,可以幫我們很好的驗證console的異步性??聪聢D中的打印結(jié)果,如果是同步的話,打印結(jié)果應(yīng)該時{},但是卻是修改后的值{foo: 'bar'}。

          主要是因為,obj是引用類型,執(zhí)行到console時,只是存儲了對象的引用,對于對象內(nèi)部的值未做記錄。當代碼執(zhí)行完后,obj內(nèi)部的值已經(jīng)被修改。返回事件隊列后,打印出的結(jié)果實際是修改后的值。

          let obj = {};
          console.log(obj);
          obj.foo = 'bar';
          image

          結(jié)論

          以上示例,都是在瀏覽器中的表現(xiàn),也就是瀏覽器中console實際是異步快照,node中的console是另一回事,它是嚴格同步的,因此同樣的代碼打印結(jié)果是{}。

          瀏覽器之所以這樣,是因為,在許多程序中,I/O被認為是低速的阻塞環(huán)節(jié)。在瀏覽器中,console.log會被異步處理以提高性能。

          下面再看兩道題目加深下理解

          第一道

          a = [1, 2, 3];
          console.log(a, a.pop());

          [1, 2], 3

          第二道這道題目很有特點,打印結(jié)果,展開前后值是不一樣的。

          person = {
           name: "張三",
           age: 18,
          };
          console.log(person);
          person.name = "李四";
          console.log(person);
          image
          image

          console.log輸出內(nèi)容為對象,指向的是對象的地址,當點開對象進行查看時,才會去訪問相應(yīng)地址獲取內(nèi)容。所以點開對象后,會重新訪問對象地址進行查詢,因此之前的張三,變成了李四


          瀏覽 35
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  人妻丰满熟妇av无码区波多野 | 操b在线免费观看 | 女公安一级毛片陆放 | 五月婷色亚洲 | 熟女 人妻 人蜜桃视频 |