首页 > Web开发 > 详细

💥2020面试准备系列(一):JS

时间:2020-05-12 12:55:19      阅读:35      评论:0      收藏:0      [点我收藏+]

一、小试牛刀

经典面试题

  1. typeof能判断哪些类型(考点:JS变量类型)?
答案:
objectstring、number、undefined、object、boolean、function、symbol
  1. 何时使用=== 何时使用==(考点:强制类型转换)?
答案:
==会隐式的强制转换类型,所以除了==null之外,其他一律用===
  1. window.onload和DOMContentLoaded的区别(考点:页面渲染过程)?
答案:
一、何时触发这两个事件?

1、当 onload 事件触发时,页面上所有的DOM,样式表,脚本,图片,flash都已经加载完成了。

2、当 DOMContentLoaded 事件触发时,仅当DOM加载完成,不包括样式表,图片,flash。
  1. JS创建10个标签,点击的时候弹出对应的序号(考点:作用域)
答案:
for(let i=0;i<10;i++){
    var a=document.createElement(a);
    a.innerHTML=i+<br>;
    document.body.appendChild(a);
    a.addEventListener(click,function(e){
                    e.preventDefault();  //取消默认事件,指a标签
                    alert(i);
    });
}
  1. 手写节流throttle、防抖debounce(考点:性能、体验优化)
答案:
//节流:当持续触发事件时,保证一定时间段内只调用一次事件处理函数。
//(诀窍:无定时、设定时、清定时:即当没有定时函数时,设置定时函数,并在定时函数中执行传参fn,并在其中清除定时器)
function throttle(fn,delay){
    let timer=null;
    return function(){
        var context=this;
        var args=arguments;
        if(!timer){
            timer=setTimeout(function(){
                fn.apply(context,args);
                timer=null;
            },delay)
        }
    }
}

//防抖:当持续触发事件时,一定时间段内没有再触发事件事件时,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。
//(诀窍:有定时、清定时、设定时)
function debounce(fn,wait){
    let timeout=null;
    return function(){
        if(timeout!==null) clearTimeout(timeout);
        timeout=setTimeout(fn,wait);
    }
}

 

先分享一部分,下次继续分享。

 

💥2020面试准备系列(一):JS

原文:https://www.cnblogs.com/ZXH-null/p/12875240.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!