面试总结

259 阅读2分钟
  1. 取消默认事件

     function stopDefault( e ) { 
    if ( e && e.preventDefault ){
         e.preventDefault(); //阻止默认浏览器动作(W3C) 
     }else {
        window.event.returnValue = false; //IE中阻止函数器默认动作的方式 
     }
    return false; 
    }
    //高版本
    obj.onclick = function (){ 
      return false; 
    }
    
  2. v-show和v-if的区别

    v-if和v-show都是用来控制元素的渲染。v-if在dom层面进行判断,v-show在css层面进行判断。v-if判断是否存在,可以减轻服务器的压力,在需要时加载,但有更高的切换开销;v-show调整DOM元素的CSS的dispaly属性,可以使客户端操作更加流畅,但有更高的初始渲染开销。如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

  3. 如何实现...

    overflow:hidden; //超出的文本隐藏
    
    text-overflow:ellipsis; //溢出用省略号显示
    
    white-space:nowrap; //溢出不换行
    
  4. 数据方法

  5. Vue源码

    //computed源码实现
    生成一个watcher对象,这个的watcher构造的时候多了一个参数computedWatcherOption参数也就是一个lazy属性
    赋值为true。然后构造的watcher有一个dirty属性就是用这个赋值的。根据dirty是否为true来判断是否需要更
    新缓存
    //数据响应式源码实现
    

  6. 原型对象

每创建一个函数都会有一个prototype属性,这个属性是一个指针,指向一个对象(通过该构造函数创建实例对象的原型对象)。原型对象是包含特定类型的所有实例共享的属性和方法。原型对象的好处是,可以让所有实例对象共享它所包含的属性和方法。

  1. 原型链

JavaScript中所有的对象都是由它的原型对象继承而来。而原型对象自身也是一个对象,它也有自己的原型对象,这样层层上溯,就形成了一个类似链表的结构,这就是原型链

详细可见:zhuanlan.zhihu.com/p/126233584

8.构造函数

因为ES6之前,javascript没有class类,于是便有了构造函数。

有人举了一个例子来解释构造函数 ,我觉得蛮贴切的就在这里引用一下,有人想要造一千个金币,并且要每个金币上面刻有不同的编号,最简单的方法就是,造一个金币的模子,然后再各自刻各自的编号, 构造函数就是这个金币的模子,你每次new一下,就是造一个金币。

详细可见:zhuanlan.zhihu.com/p/126215732