美文网首页我爱编程
js试题总结(2)

js试题总结(2)

作者: xxt1ngt1ng | 来源:发表于2018-04-16 13:14 被阅读0次

    工具类

    1.获取2017-06-10格式的日期

    function formatDate(orgDate) {
            if (!orgDate) {
                orgDate = new Date()
            }
            var year = orgDate.getFullYear();
            var month = orgDate.getMonth();
            var date = orgDate.getDate();
            if (month < 10) {
                month = '0' + month
            }
            if (date < 10) {
                date = '0' + 10
            }
            var format = year + '-' + month + '-' + date;
            return format;
        }
    

    2.获取随机数,要求的长度一致的字符串格式

      function getRandom(length) {
            var num = Math.random();
            num += '0000000000';
            return num.substring(0,length);
        }
    

    DOM操作

    3.DOM是哪种基本的数据结构

    4.DOM操作常用的API有哪些

    https://www.cnblogs.com/clairexia/p/6635029.html
    网上找了一篇文章

    5.DOM节点的attr和property有何区别

    property是DOM中默认的基本属性,是JavaScript里的对象;
    attribute是HTML标签上的特性,它的值只能够是字符串;
     
    

    事件

    6.编写一个通用的事件监听函数

    最简单的可以这么写:

    function bindEvent(elem,type,fn){
        elem.addEventListener(type,fn)
    }
    

    优化的:

    function bindEvent(elem,type,selector,fn){
       if(fn==null){
           fn=selector
           selector=null
       }
       elem.addEventListener(type,function(e){
           var target
           if(selector){
               target=e.target;
               if(target.matches(selector)){
                   fn.call(target,e)
               }
           }
               else{
                   fn(e)
               }
       })
    }
    
    var div3=document.getElementById('div3');
    bindEvent(div3,'click','A',function(e){
       console.log(this.innerHTML)
    })
    

    7.描述事件冒泡的过程

    这个百度很多,我的简单理解是:子组建和父组件绑定了一样的方法,如onclick,当子组件触发自身onclick,会向上冒泡,触发父组件onclick事件

    8.对一个无限下拉加载页面,如何给每个图片绑定事件

    事件代理,不把事件绑定在每个img上,绑定在父组件上

    Ajax

    9.手动编写一个ajax,不依赖第三方库

    var xhr=XMLHttpRequest();
    xhr.open('GET','xx',false);
    xhr.onreadystatechange=function(){
        if(xhr.readyState==4){
            if(xhr.status==200){
            console.log(xhr.responseText)
            }
        }
    }
    
    xhr.send(null)
    

    其他

    10.描述一下cookie、sessionStorage、localStorage的区别

    cookie:用于客户端和服务端通信
    每次请求都会携带,只有4kb,api简单需要封装才能用
    sessionStorage、localStorage:最大5M,请求不携带,api简单易用
    session生命周期在浏览器关闭时结束

    相关文章

      网友评论

        本文标题:js试题总结(2)

        本文链接:https://www.haomeiwen.com/subject/mactkftx.html