加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Javascript口试中常常被问到的三个题目!

发布时间:2019-03-07 06:26:08 所属栏目:建站 来源:前端小智
导读:本文不是接头最新的 JavaScript 库、常见的开拓实践或任何新的 ES6 函数。相反,在接头 JavaScript 时,口试中凡是会提到三件事。我本身也被问到这些题目,我的伴侣们汇报我他们也被问到这些题目。 然,这些并不是你在口试之前应该进修的独一三件事 - 你可
副问题[/!--empirenews.page--]

 Javascript口试中常常被问到的三个题目!

本文不是接头最新的 JavaScript 库、常见的开拓实践或任何新的 ES6 函数。相反,在接头 JavaScript 时,口试中凡是会提到三件事。我本身也被问到这些题目,我的伴侣们汇报我他们也被问到这些题目。

然,这些并不是你在口试之前应该进修的独一三件事 - 你可以通过多种方法更好地为即将到来的口试做筹备 - 但口试官也许会问到下面是三个题目,来判定你对 JavaScript 说话的领略和 DOM 的把握水平。

让我们开始吧!留意,我们将在下面的示例中行使原生的 JavaScript,由于口试官凡是但愿相识你在没有 jQuery 等库的辅佐下对JavaScript 和 DOM 的领略水平。

题目 1: 变乱委托署理

在构建应用措施时,偶然必要将变乱绑定到页面上的按钮、文本或图像,以便在用户与元素交互时执行某些操纵。

假如我们以一个简朴的待服务项列表为例,口试官也许会汇报你,当用户点击列表中的一个列表项时执行某些操纵。他们但愿你用 JavaScript 实现这个成果,假设有如下 HTML 代码:

  1. <ul id="todo-app">  
  2.   <li class="item">Walk the dog</li>  
  3.   <li class="item">Pay bills</li>  
  4.   <li class="item">Make dinner</li>  
  5.   <li class="item">Code for one hour</li>  
  6. </ul> 

你也许想要做如下操纵来将变乱绑定到元素:

  1. document.addEventListener('DOMContentLoaded', function() {  
  2.   let app = document.getElementById('todo-app');  
  3.   let itimes = app.getElementsByClassName('item');  
  4.   for (let item of items) {  
  5.     item.addEventListener('click', function(){  
  6.       alert('you clicked on item: ' + item.innerHTML);  
  7.     })  
  8.   }  
  9. }) 

固然这在技能上是可行的,但题目是要将变乱别离绑定到每个项。这对付今朝 4 个元向来说,没什么大题目,可是假如在待服务项列表中添加了 10,000 项(他们也许有许多工作要做)怎么办?然后,函数将建设 10,000 个独立的变乱侦听器,并将每个变乱监听器绑定到 DOM ,这样代码执行的服从很是低下。

在口试中,最好先问口试官用户可以输入的最大元素数目是几多。譬喻,假如它不高出 10,那么上面的代码就可以很好地事变。可是假如用户可以输入的条目数目没有限定,那么你应该行使一个更高效的办理方案。

假如你的应用措施最终也许稀有百个变乱侦听器,那么更有用的办理方案是将一个变乱侦听器现实绑定到整个容器,然后在单击它时可以或许会见每个列表项, 这称为 变乱委托,它比附加单独的变乱处理赏罚措施更有用。

下面是变乱委托的代码:

  1. document.addEventListener('DOMContentLoaded', function() {  
  2.   let app = document.getElementById('todo-app');  
  3.   app.addEventListener('click', function(e) {  
  4.     if (e.target && e.target.nodeName === 'LI') {  
  5.       let item = e.target;  
  6.       alert('you clicked on item: ' + item.innerHTML)  
  7.     }  
  8.   })  
  9. }) 

题目 2: 在轮回中行使闭包

闭包经常呈此刻口试中,以便口试官权衡你对 JS 的认识水平,以及你是否知道何时行使闭包。

闭包根基上是内部函数可以会见其范畴之外的变量。 闭包可用于实现隐私和建设函数工场, 闭包常见的口试题如下:

编写一个函数,该函数将遍历整数列表,并在耽误3秒后打印每个元素的索引。

常常不正确的写法是这样的:

  1. const arr = [10, 12, 15, 21];  
  2. for (var i = 0; i < arr.length; i++) {  
  3.   setTimeout(function() {  
  4.     console.log('The index of this number is: ' + i);  
  5.   }, 3000);  

假如运行上面代码,3 秒耽误后你会看到,现实上每次打印输出是 4,而不是祈望的 0,1,2,3 。

为了正确领略为什么会产生这种环境,相识为什么会在 JavaScript 中产生这种环境将很是有效,这正是口试官试图测试的内容。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读