携程——前端笔试

本文总结了在携程前端笔试中遇到的选择题,涵盖JavaScript的setTimeout和setInterval、异步任务、this绑定、CSS样式覆盖优先级、变量声明提升、函数作用域以及设计模式等知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里我将会总结在携程笔试过程中遇到的选择题。

1:

for(var i =1;i<=3;i++){
           setTimeout(function(a){
   
              console.log(a);  
           }(i),0)
       };
   // 1
   // 2
   // 3    

解析:

  • 基础知识

setTimeout(func,s) 用于在指定的毫秒数后调用函数或计算表达式,停止该方法可使用 clearTimeout 方法。
setTimeout() 只执行一次func,如果要多次调用,可用 setInterval() 方法

  • setInterval和setTimeout

setInterval() 可按照指定的周期(以毫秒计)来调用函数或计算表达式,停止该方法可使用 clearInterval() 方法。

// 每隔50毫秒就会执行一次 clock() 方法,即文本框中的数字每隔50毫秒改变一次
  <button onclick="window.clearInterval(int)">停止 interval</button>
     <input type="text" id="clock" size="50" />
   <script>

        var int = self.setInterval("clock()", 50);  
        function clock() {
    
            var t = new Date();
            document.getElementById("clock").value = t;
        }
    </script>    
  • 单线程的JavaScript & 异步的 setTimeout()

1.JavaScript是浏览器用来与用户进行交互、进行DOM操作的,这也使得它必须有单线程这一特性。

2.在JavaScript中任务有两种,一种是同步任务,一种是异步任务。

(1).同步任务:各个任务按照文档定义的顺序一一推入执行栈中,当前一个任务执行完毕,才会开始执行下一个任务。

(2).异步任务:各个任务推入任务队列中,只有在当前的所有同步任务执行完毕,才会将队列中的任务”出队”执行。(注:这里的异步任务并不一定是按照文档定义的顺序推入队列中)

(3).任务队列(event loop):理解为用于存放事件的队列,当执行一个异步任务时,就相当于执行任务的回调函数。一般异步操作包括 io(ajax获取服务器数据)、用户/浏览器自执行事件(onclick、onload、onkeyup等)以及定时器(setTimeout、setInterval)

console.log("1");

setTimeout(<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值