• 常见前端面试问题


    1.数据结构 快速排序的原理,时间复杂度
    2.js的事件委托原理、

    window.onload = function(){
      var oUl = document.getElementById("ul1");
      oUl.onclick = function(ev){
        var ev = ev || window.event;
        var target = ev.target || ev.srcElement;
        if(target.nodeName.toLowerCase() == 'li'){
             alert(123);
            alert(target.innerHTML);
        }
      }
    }

    -----------------------------------------------------------------
    3.事件冒泡和事件捕获的原理及区别
    4.on 绑定事件的原理,如何区分触发on事件的是哪个子元素
    5.vue的单页面应用,切换到别的路由以后,前一个路由会destroy吗?
    6.vue 路由的切换,除了router-link to:以外、


    router.push(location)
    想要导航到不同的 URL,则使用 router.push 方法。这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 URL。
    router.replace(location)
    跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录

    router.push({path:'home'}); //直接添加一个路由,表现切换路由,本质往历史记录里面添加一个
    router.replace({path:'news'}) //替换路由,不会往历史记录里面添加


    ---------------------------------------------------------------------------
    7.document.ready(function(){})原理

    http://wowtianwen.iteye.com/blog/2100913


    ---------------------------------------------------------------------------
    8.jquery组件扩展的$.fn.funName的fn是什么


    $.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。
    如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了.
    那么你可以这样子:$("#div").abc();

    jQuery为开发插件提拱了两个方法,分别是:

    jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。
    jQuery.fn.extend(object);给jQuery对象添加方法。

    fn是什么东西呢。查看jQuery代码,就不难发现。

    复制代码代码如下:

    jQuery.fn = jQuery.prototype ={
       init: function( selector, context ){//.... 
       //......
    };

    原来 jQuery.fn =jQuery.prototype.对prototype肯定不会陌生啦。
    jQuery便是一个封装得非常好的类,比如我们用语句 $("#btn1") 会生成一个 jQuery类的实例。

    jQuery.extend(object); 为jQuery类添加添加类方法,可以理解为添加静态方法。如:

    $.extend({
      add:function(a,b){returna+b;}
    });

    便为 jQuery 添加一个为add 的 “静态方法”,之后便可以在引入 jQuery 的地方,使用这个方法了,
    $.add(3,4); //return 7

    jQuery.fn.extend(object);对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。
    比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert当前编辑框里的内容。可以这么做:

    jQuery代码

    $.fn.extend({

    alertWhileClick:function(){

    $(this).click(function(){

    alert($(this).val());
    });
    }
    });

    --------------------------------------------------------------------------------------
    9.vue的双向数据绑定的原理

    数据劫持: vue.js 则是采用数据劫持结合发布者-订阅者模式的方式,
    通过Object.defineProperty()来劫持各个属性的setter,getter,
    在数据变动时发布消息给订阅者,触发相应的监听回调。


    https://segmentfault.com/a/1190000006599500


    ---------------------------------------------------------------------------------------
    10.预加载的原理

    前端笔记0-0
  • 相关阅读:
    Springboot项目使用Juint单元测试
    ubuntu安装python
    ubuntu安装mysql
    ubuntu系统添加开机自动启动 /home/ubuntu/myscript/startpic.sh 脚本
    ubuntu关闭mysql日志
    ubuntu 系统 pycharm做软连接
    ubuntu系统开机自动爬取数据
    ubuntu系统添加开机自动启动django
    Ubuntu系统设置不休眠
    xshell 打开pycharm 按 ctrl+shift 可取消输入一个字母出现两个字母的现象
  • 原文地址:https://www.cnblogs.com/qdcnbj/p/8044476.html
Copyright © 2020-2023  润新知