zoukankan      html  css  js  c++  java
  • 💥2020面试准备系列(一):JS

    一、小试牛刀

    经典面试题

    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);
        }
    }

     

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

  • 相关阅读:
    Python:遍历文件目录及子目录,并批量改变文件名称
    python:利用递归遍历文件夹所有文件(包括子文件夹里的文件)
    python文件,文件夹操作
    Ubuntu安装vim报错的的处理
    Centos7安装Chrome
    Centos7更换阿里yum源
    CentOS7设置启动默认界面方法
    Vim快捷键学习---记性不行了,留这里备查
    第7-9章作业汇总
    第四次作业---第三题陈岩岩
  • 原文地址:https://www.cnblogs.com/ZXH-null/p/12875240.html
Copyright © 2011-2022 走看看