面试可能会遇到的各种问题讲解

语义化html

什么是语义化html?

    语义化html就是根据页面内容的结构,选择合适的标签(例如头部用header标签,导航用nav标签,底部用footer标签等)。
    使用语义化html的好处在于便于开发者阅读,方便后期的更新迭代,增强网页的权重。

H5新增的特性

H5新增了哪些新特性?

    新增了一些新标签:canvas,video,header,nav,article等
    form表单新增一些新类型:list,range,email,tel等
    css3新增一些新属性:@media,@keyframe,transform,box-shadow,display:flex等

闭包

什么是闭包?使用闭包有什么好处?

    闭包首先是有两个函数,一个函数嵌套另一个函数,格式如下:


    function fn(){
        var a = 0;
        return function(){
            a++;
            alert(a);
        }
    }
    var b = fn();
    b();
    函数调用一次形成一个闭包。
    
    好处:变量私有化,避免变量命名冲突,可以缓存,具有封装性

null跟undefined

null跟undefined有什么区别?

    null跟undefined都是js的基本数据类型,null是表示没有对象,是一个空指针,undefined是声明了一个变量但没有赋值。

ajax的请求方式

ajax的请求方式有哪些?它们有什么区别?

    ajax请求方式有get请求,post请求
    get:请求数据量小,请求信息在地址栏显示,安全系数低
    post:可以请求大量数据,请求信息不在地址栏显示,安全系数高

json数据

json数据的格式是什么样的?如何解析json数据渲染到页面上?

    json格式:
        简单格式:
            `{"name":"a"}`
        数组格式:
        {
            "json":[
                {"name":"a"},
                {"name":"b"},
                {"name":"c"}
            ]
        
        }
        
    解析:
        数据请求成功后保存到一个变量data中,
        var html = "";
        for(var i = 0; i < data.length; i++){
            html += "<div>" + data.json[i].name + "</div>"
        }
        $('#element').html(html);

跨域问题

如何解决跨域问题?jsonp用哪种请求方式?

    iframe跨域
    动态创建script标签,src结尾需要加上?callback=jsonpCallback
    ajax请求,dataType为jsonp,jsonp的请求方式用get请求
    

原型跟原型链

先留着,待讲解(因为我不懂,里边的关系太乱了)


this对象

如何理解this对象的指向?

    谁调用这个方法,this就指向谁,没有调用就指向window,自执行的方法也指向window

图片懒加载

图片懒加载的原理?
    
    像做一些电商的项目就会有大量的图片展示,这时就会用到图片懒加载,它的原理就是按需加载,先把图片的真实地址保存到一个自定义属性中,为了用户体验可以先给img标签的src一个默认的本地图片地址,然后根据scrollTop的变化触发事件把存放图片真实地址的值赋给src
    原文作者:barry_mr_杨
    原文地址: https://segmentfault.com/a/1190000011067446
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞