精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

解析10個JavaScript筆試題

開發 前端
作為JavaScript開發人員,我們可以挑戰自己成長的一個方法就是用刷題來練習!下面的問題旨在具有挑戰性和啟發性。如果你確切地知道如何回答每一個問題,那很好,但如果你答錯了,并知道為什么答錯了,我認為那就更好了!

 作為JavaScript開發人員,我們可以挑戰自己成長的一個方法就是用刷題來練習!下面的問題旨在具有挑戰性和啟發性。如果你確切地知道如何回答每一個問題,那很好,但如果你答錯了,并知道為什么答錯了,我認為那就更好了!

問題1:數組排序比較

考慮以下數組。在不同的排序條件中會輸出什么?

 

  1. const arr1 = ['a''b''c']; 
  2. const arr2 = ['b''c''a']; 
  3.  
  4. console.log( 
  5.   arr1.sort() === arr1, 
  6.   arr2.sort() == arr2, 
  7.   arr1.sort() === arr2.sort() 
  8. ); 

答案: true, true, false

這里有幾個概念在起作用。首先,數組 sort 方法對原始數組進行排序,并返回對該數組的引用。這意味著在編寫 arr2.sort() 時,將對 arr2 數組對象進行排序。

事實證明,在比較對象時,數組的排序順序并不重要。由于 arr1.sort() 和 arr1 指向內存中的同一對象,因此第一個相等測試返回 true。第二個比較也是如此:arr2.sort() 和 arr2 指向內存中的同一對象。

在第三個測試中,arr1.sort() 和 arr2.sort() 的排序順序相同;但是,它們指向內存中的不同對象。因此,第三項測試的結果為 false。

問題2:set 一組對象

考慮下面的對象 Set 集合,它們散布到一個新的數組中。會輸出什么?

 

  1. const mySet = new Set([{ a: 1 }, { a: 1 }]); 
  2.  
  3. const result = [...mySet]; 
  4.  
  5. console.log(result); 

答案:[{a: 1}, {a: 1}]。

盡管 Set 對象確實會刪除重復項,但是盡管具有相同的鍵值對,但我們使用 Set 創建的兩個值是對內存中不同對象的引用。這與 {a:1} === {a:1} 為 false 的原因相同。

應該注意的是,如果集合是使用對象變量創建的,例如 obj = {a:1},則 new Set([obj,obj]) 將只有一個元素,因為數組中的兩個元素都引用內存中的同一對象。

問題3:深度對象可變性

考慮下面這個代表用戶Joe和他的狗Buttercup的對象。我們使用 Object.freeze 保存我們的對象,然后嘗試更改Buttercup的名稱。會輸出什么?

 

  1. const user = { 
  2.   name'Joe'
  3.   age: 25, 
  4.   pet: { 
  5.     type: 'dog'
  6.     name'Buttercup' 
  7.   } 
  8. }; 
  9.  
  10. Object.freeze(user); 
  11.  
  12. user.pet.name = 'Daffodil'
  13.  
  14. console.log(user.pet.name); 

答案:Daffodil。

Object.freeze 將對對象執行淺層凍結,但不會保護深層屬性不被突變。在此示例中,我們將無法更改user.age,但對 user.pet.name 進行更改不會有問題。如果我們認為需要保護某個對象以免其被“徹底破壞”,則可以遞歸應用 Object.freeze 或使用現有的“deep freeze”庫。

問題4:原型繼承

在這個問題中,我們有一個 Dog 構造函數,我們的 dog 顯然知道說話的命令。當我們要求Pogo講話時,以下示例中將會輸出什么?

 

  1. function Dog(name) { 
  2.   this.name = name
  3.   this.speak = function() { 
  4.     return 'woof'
  5.   }; 
  6.  
  7. const dog = new Dog('Pogo'); 
  8.  
  9. Dog.prototype.speak = function() { 
  10.   return 'arf'
  11. }; 
  12.  
  13. console.log(dog.speak()); 

答案:woof。

每次創建一個新的 Dog 實例時,我們都會將該實例的 speak 屬性設置為一個返回字符串 woof 的函數。由于每次創建新的 Dog 實例時都會設置該字段,因此解釋器無需再向上尋找原型鏈來查找 speak 屬性。結果,永遠不會使用 Dog.prototype.speak 上的 speak 方法。

問題5:Promise.all Resolve Order

在這個問題中,我們有一個 timer 函數,該函數返回一個 Promise,該Promise將在隨機時間后解析。我們使用 Promise.all 解析 timers 數組。會輸出什么,還是隨機的?

 

  1. const timer = a => { 
  2.   return new Promise(res => 
  3.     setTimeout(() => { 
  4.       res(a); 
  5.     }, Math.random() * 100) 
  6.   ); 
  7. }; 
  8.  
  9. const all = Promise.all([ 
  10.   timer('first'), 
  11.   timer('second'
  12. ]).then(data => console.log(data)); 

答案: ["first", "second"]。

Promise解決的順序與 Promise.all 無關。我們可以可靠地指望它們以數組參數中提供的相同順序返回。

問題6:Reduce Math

下面的代碼輸出什么?

 

  1. const arr = [ 
  2.   x => x * 1, 
  3.   x => x * 2, 
  4.   x => x * 3, 
  5.   x => x * 4 
  6. ]; 
  7.  
  8. console.log(arr.reduce((agg, el) => agg + el(agg), 1)); 

答案:120。

使用 Array#reduce 時,聚合器的初始值(在這里稱為 agg)在第二個參數中給出。在這種情況下,就是 1。然后,我們可以如下迭代函數:

  • 1 +1 * 1 = 2(下一次迭代中聚合器的值)
  • 2 + 2 * 2 = 6(下一次迭代中聚合器的值)
  • 6 + 6 * 3 = 24(下一次迭代中聚合器的值)
  • 24 + 24 * 4 = 120(最終值)

因此,它是120!

問題7:短路通知

讓我們向用戶顯示一些通知!以下代碼段會輸出什么?

 

  1. const notifications = 1; 
  2.  
  3. console.log( 
  4.   `You have ${notifications} notification${notifications !== 
  5.     1 && 's'}` 
  6. ); 

答案:“You have 1 notificationfalse”。

不幸的是,我們的短路評估將無法按此處的預期進行:notifications!== 1 && 's' 評估為 false,這意味著我們實際上將輸出 You have 1 notificationfalse。如果我們希望代碼段正常工作,則可以考慮條件運算符:${notifications === 1 ? '' : 's'}。

問題8:Spread并重命名

考慮以下具有單個對象的數組。當我們擴展該數組并更改0索引對象上的 firstName 屬性時會發生什么?

 

  1. const arr1 = [{ firstName: 'James' }]; 
  2. const arr2 = [...arr1]; 
  3. arr2[0].firstName = 'Jonah'
  4.  
  5. console.log(arr1); 

答案:[{ firstName: "Jonah" }]。

Spread創建一個數組的淺層副本,這意味著 arr2 中包含的對象仍指向 arr1 對象指向的內存中的同一對象。因此,在一個數組中更改對象的 firstName 屬性將通過另一個數組中的對象更改而反映出來。

問題9:數組方法綁定

在以下情況下會輸出什么?

 

  1. const map = ['a''b''c'].map.bind([1, 2, 3]); 
  2. map(el => console.log(el)); 

答案:1 2 3。

['a', 'b', 'c'].map,當調用時,將調用 Array.prototype.map,其 this 值為 ['a', 'b', 'c']。但是,當作為引用使用時,['a', 'b', 'c'].map 只是對 Array.prototype.map 的引用,而不是調用。

Function.prototype.bind 將把函數的 this 綁定到第一個參數(在本例中是 [1, 2, 3]),用這樣的this 調用 Array.prototype.map 會導致這些項被迭代并記錄下來。

問題10:Set 唯一性和順序

在以下問題中,我們使用 Set 對象和spread語法創建一個新數組。輸出的內容(考慮:項目被強制為唯一的嗎?它們是否已排序?)

 

  1. const arr = [...new Set([3, 1, 2, 3, 4])]; 
  2. console.log(arr.length, arr[2]); 

答案:4 2。

Set 對象將強制唯一元素(集合中已經存在的重復元素將被忽略),但不會更改順序。所得的 arr 數組將為[3,1,2,4],表示 arr.length 為 4 ,而 arr [2] (數組的第三個元素)為 2。

責任編輯:華軒 來源: 今日頭條
相關推薦

2011-08-11 17:39:25

Objective-C筆試題

2017-07-27 15:05:18

前端JavaScript難點

2024-11-28 08:33:16

JavaScrip事件循環this

2023-08-02 18:44:47

JavaScript命名web

2015-04-07 14:05:13

前端阿里在線筆試題

2009-06-15 17:18:25

Java筆試題

2015-03-26 10:17:31

javascriptjavascript筆

2018-04-04 09:35:01

前端JavaScript面試題

2011-06-30 16:10:01

JavaScript

2019-11-13 09:01:48

開源JavaScript模板引擎

2021-03-15 08:13:19

JavaScript開發代碼

2017-12-05 11:25:09

2010-08-11 12:07:08

騰訊筆試題騰訊筆試題

2010-08-11 11:32:57

谷歌筆試題谷歌筆試題

2009-07-28 13:35:18

2010-08-11 11:57:02

微軟筆試題微軟筆試題

2010-08-11 11:22:00

IBM筆試題IBM筆試

2010-08-16 15:27:22

雅虎筆試題

2010-08-18 10:17:00

2015-08-27 09:27:34

JavaScript面試題
點贊
收藏

51CTO技術棧公眾號

蜜臀精品久久久久久蜜臀| 粉嫩的18在线观看极品精品| 亚洲欧洲av色图| 99免费在线观看视频| 国偷自拍第113页| 日韩国产欧美| 精品国产伦一区二区三区观看方式 | 日韩中文字幕网址| 国产精品嫩草69影院| 欧美xxx性| 亚洲乱码中文字幕综合| 鲁丝片一区二区三区| 国产精品午夜福利| 亚洲欧美卡通另类91av| 久青草国产97香蕉在线视频| 手机免费看av片| 亚洲日韩中文字幕一区| 婷婷综合另类小说色区| 91麻豆天美传媒在线| 免费在线稳定资源站| 精品在线视频一区| 国产suv精品一区二区| 麻豆视频在线观看| 欧美亚洲在线日韩| 亚洲精品短视频| 中文字幕一二三| 国产精品久久久久久久久久齐齐 | 精久久久久久久久久久| 91sa在线看| 九九视频免费观看| 国产精品99一区二区三| 亚洲香蕉av在线一区二区三区| 涩视频在线观看| www.国产精品| 日韩欧美成人精品| 秋霞无码一区二区| 七七成人影院| 国产精品久99| 亚洲成人精品电影在线观看| 手机福利小视频在线播放| 夫妻av一区二区| 91探花福利精品国产自产在线| 中文字幕精品视频在线观看| 国产视频亚洲| 97国产精品久久| 欧美日韩精品亚洲精品| 亚洲综合专区| 欧美插天视频在线播放| 99鲁鲁精品一区二区三区| 秋霞欧美视频| 欲色天天网综合久久| 亚洲av熟女国产一区二区性色| 五月天亚洲色图| 日韩精品欧美国产精品忘忧草| 无码人妻aⅴ一区二区三区玉蒲团| 精品国产亚洲一区二区三区在线| 欧美日韩国产高清一区二区三区| 嫩草影院国产精品| 小明成人免费视频一区| 在线观看免费视频综合| 成人性生生活性生交12| 国产日韩另类视频一区| 日韩欧美中文字幕在线观看| 日本成年人网址| 国模冰冰炮一区二区| 都市激情亚洲色图| 成年人免费大片| 成人黄色免费短视频| 在线观看91视频| 一区二区在线免费看| 国产亚洲高清一区| 亚洲精品一区二区三区99| 老司机午夜免费福利| 中国av一区| 在线观看日韩专区| 777777国产7777777| 国产精品九九| 茄子视频成人在线| 亚洲一区二区色| 国产精品一区三区| 国内精品久久国产| 国产69久久| **性色生活片久久毛片| 国产www免费| 精品国产免费人成网站| 欧美乱妇23p| 女王人厕视频2ⅴk| 亚洲精品白浆高清| 日韩中文字幕精品| 国产在线视频你懂的| 噜噜噜久久亚洲精品国产品小说| 国产精品老牛影院在线观看| 国产农村妇女毛片精品久久| 99国产精品久久久久久久久久 | 亚洲mv大片欧洲mv大片| 国内精品在线一区| 人妻中文字幕一区二区三区| 国产黑丝在线一区二区三区| 久久av免费观看| 黄色网在线免费看| 大伊人狠狠躁夜夜躁av一区| 成人日韩在线视频| 全球av集中精品导航福利| 色偷偷偷亚洲综合网另类| 国产一级特黄a高潮片| 麻豆成人免费电影| 国产一区自拍视频| 国产精品va在线观看视色 | 欧美污视频网站| 亚洲欧美专区| 亚洲人高潮女人毛茸茸| 久久久99精品| 国产真实久久| 国产日韩精品在线播放| 同心难改在线观看| 一区二区在线观看免费| 亚洲污视频在线观看| 久久99国产精品久久99大师| 视频一区视频二区国产精品| 亚洲高清毛片一区二区| 国产激情偷乱视频一区二区三区| 亚洲精品自在在线观看| sese综合| 精品成人在线观看| 欧美又粗又大又长| 麻豆精品一区二区三区| 欧美日韩精品不卡| 大香伊人久久| 日韩一区二区精品| 久草福利资源在线| 日韩黄色免费电影| 你懂的视频在线一区二区| 第一中文字幕在线| 精品欧美乱码久久久久久| 欧美性x x x| 久久国产成人午夜av影院| 欧美日韩一区二区三区在线观看免 | 国产喂奶挤奶一区二区三区| 成年人午夜视频在线观看 | 蜜臀精品久久久久久蜜臀| 久久综合精品一区| 国产777精品精品热热热一区二区| 91精品国产福利在线观看| 三级黄色录像视频| 蜜乳av一区二区| 手机成人在线| 成人黄色在线| 中文字幕亚洲综合久久筱田步美| 国产九色91回来了| 欧美激情在线观看视频免费| 中文字幕欧美人妻精品一区| 妖精视频一区二区三区免费观看| 2020久久国产精品| 深夜福利免费在线观看| 精品久久中文字幕| 巨胸大乳www视频免费观看| 久久精品天堂| 日韩免费三级| 欧美亚洲人成在线| 久久综合电影一区| 99久久久久成人国产免费| 一区二区三区中文在线| 老司机av网站| 妖精视频成人观看www| 精品乱码一区二区三区| 少妇在线看www| 曰本色欧美视频在线| 一起草av在线| 亚洲黄色小视频| 男人网站在线观看| 久久婷婷激情| 在线观看一区二区三区三州| 精品中文字幕一区二区三区四区| 欧美激情啊啊啊| 欧美一区二区视频| 欧美日韩国产在线播放网站| 免费成人美女女在线观看| 国产成人在线观看| 9久久9毛片又大又硬又粗| 国内黄色精品| 成人性生交大片免费观看嘿嘿视频| 五月天激情在线| 国产丝袜一区二区三区| 中文av免费观看| 夜夜操天天操亚洲| 国产在线观看无码免费视频| 日本三级亚洲精品| 麻豆一区二区三区在线观看| 欧美人与动xxxxz0oz| 国产精品视频专区| 波多野结衣久久| 亚洲网在线观看| av网站在线免费看| 一本在线高清不卡dvd| 欧美国产日韩在线观看成人| 26uuu成人网一区二区三区| 欧美特级aaa| 一区三区视频| 伊人天天久久大香线蕉av色| 卡一精品卡二卡三网站乱码| 国产欧美在线播放| 成人免费图片免费观看| 久久久成人的性感天堂| 天堂av在线免费观看| 欧美精品成人一区二区三区四区| 久久99精品波多结衣一区| 亚洲欧美一区二区在线观看| 李宗瑞91在线正在播放| 国产精品一区二区久久不卡| www.色偷偷.com| 亚洲国产日本| 五月天在线免费视频| 精品av一区二区| 国产欧美一区二区三区不卡高清| 国产亚洲人成a在线v网站| 秋霞成人午夜鲁丝一区二区三区| 中文在线观看免费| 日韩中文字幕久久| 阿v免费在线观看| 亚洲美女自拍视频| 亚洲国产成人在线观看| 欧美日韩一级大片网址| 国产视频1区2区| 午夜伊人狠狠久久| 国产一区二区视频在线观看免费| 国产精品麻豆视频| 法国空姐电影在线观看| eeuss鲁片一区二区三区在线观看| 思思久久精品视频| 美国十次了思思久久精品导航 | 精品一区二区三区在线观看 | 国产一级视频在线观看| 亚洲精品日日夜夜| 国产3级在线观看| 国产精品毛片大码女人| 国产精品1区2区3区4区| 国产日韩一级二级三级| 无码国产69精品久久久久同性| 99精品欧美一区二区三区小说 | 91麻豆一区二区| 在线观看国产日韩| 无码人妻丰满熟妇区bbbbxxxx | 成人在线免费观看av| 黄色成人在线网址| 国产精品videossex国产高清| 欧美人成网站| 狠狠干视频网站| 伊人久久久大香线蕉综合直播| 日韩不卡视频一区二区| 欧美精品二区| 17c丨国产丨精品视频| 狠狠入ady亚洲精品经典电影| 国产爆乳无码一区二区麻豆| 欧美午夜不卡| 日本a在线免费观看| 在线亚洲自拍| 久久人妻精品白浆国产 | 国产精品久久久久久久久久久新郎 | 男人的天堂在线视频| 亚洲欧洲在线播放| 岛国大片在线观看| 色妞欧美日韩在线| 国产在线高清视频| 色综合久久久久久中文网| 激情网站在线| 91精品国产乱码久久久久久蜜臀 | 欧美色一级片| 国产极品在线视频| 日韩在线观看一区二区| 成年网站免费在线观看| 国产成人综合精品三级| 日本不卡视频一区| 国产色一区二区| 亚洲一级二级片| 亚洲成人精品影院| 日韩三级一区二区| 在线电影一区二区三区| 亚洲精品久久久狠狠狠爱| 日韩精品在线免费播放| 在线视频91p| 欧美精品videosex牲欧美| 在线日韩影院| 亚洲最大成人网色| 欧亚精品一区| 亚洲免费在线精品一区| 激情欧美丁香| 亚洲老女人av| 成年人网站91| 精品伦精品一区二区三区视频密桃| 亚洲久草在线视频| 国产一级一级国产| 日韩一区二区三区电影在线观看 | 色老头在线视频| 欧美一区二区女人| 欧洲亚洲精品视频| 久久伊人精品天天| sis001欧美| 国产二区不卡| 欧美顶级大胆免费视频| 成人性生活视频免费看| 久久精品国产一区二区| 538国产视频| 亚洲色图制服诱惑| 久久久久在线视频| 日韩精品一区二| 亚洲搞黄视频| 国产91精品久久久久久| 视频二区欧美毛片免费观看| 亚洲高清资源综合久久精品| 99国产精品99久久久久久粉嫩| 欧美一级xxxx| 久久久久久久久久美女| 久久精品亚洲无码| 欧美精品123区| 国产福利在线| 日本国产精品视频| 久久九九热re6这里有精品 | 久久亚洲无码视频| 亚洲 欧美综合在线网络| 国产又粗又黄又爽| 国产亚洲精品综合一区91| 国产乱码午夜在线视频| 国产二区一区| 国产精品mv在线观看| 五月天中文字幕在线| 亚洲国产成人一区二区三区| 日本一区二区免费电影| 亚洲白拍色综合图区| 在线观看av免费| 91视频国产高清| 99国内精品久久久久久久| 国产超碰在线播放| 国产亚洲女人久久久久毛片| 国产精品乱子伦| 日韩av一区在线| aaa在线播放视频| 国产精品一区二区你懂得| 狠狠综合久久| 日本精品一二三| 亚洲韩国一区二区三区| 亚洲免费黄色片| 久久久亚洲精品视频| 综合欧美亚洲| www污在线观看| 不卡的av在线| 一级片免费网址| 日韩精品在线观看一区| 惠美惠精品网| 午夜精品一区二区在线观看的| 日韩va欧美va亚洲va久久| 亚洲一区视频在线播放| 欧美亚洲丝袜传媒另类| 成人在线观看黄色| 成人www视频在线观看| 午夜久久免费观看| 波多野结衣电影免费观看| 亚洲综合激情网| 欧美 日韩 国产 成人 在线 91| 国自在线精品视频| 日韩高清一级| 亚洲性生活网站| 一色屋精品亚洲香蕉网站| 99久久精品国产一区色| 欧美激情视频三区| 亚洲人成网亚洲欧洲无码| 别急慢慢来1978如如2| 中文字幕二三区不卡| a级片在线视频| 国语自产精品视频在线看| 亚洲成a人片77777在线播放| 无码无遮挡又大又爽又黄的视频| 国产精品网曝门| av中文字幕播放| 91精品国产沙发| 精品视频免费在线观看| 亚洲一二区在线观看| 亚洲国产一区视频| 国产中文字幕在线观看| 亚洲a∨日韩av高清在线观看| 伊人影院久久| 在线国产视频一区| 欧美丰满美乳xxx高潮www| 福利写真视频网站在线| 欧美日韩高清免费| 国产一区二区三区不卡在线观看| 日韩黄色在线视频| 中文字幕亚洲色图| jizz久久精品永久免费| 牛夜精品久久久久久久| 亚洲国产cao| 日本成a人片在线观看| 国产精品三区四区| 麻豆成人91精品二区三区| 日韩久久精品视频| 色播久久人人爽人人爽人人片视av| 麻豆国产一区二区三区四区| 久久无码高潮喷水| 亚洲欧美经典视频| 国产一区二区影视| 成人女人免费毛片|