美文网首页
面试总结

面试总结

作者: wuliwolfyuan | 来源:发表于2016-11-26 21:13 被阅读0次
    1.<!DOCTYPE>的作用
     此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范
    
    2.Js中函数的几种声明方式

    1.Function Declaration(函数定义)
    function bar() { return 3;}
    2.Function Expression(函数表达式)
    //匿名函数表达式var a = function() { return 3;}
    //有名函数表达式var a = function bar() { return 3;}
    //自调用函数表达式(function sayHello() { alert("hello!");})();

    3.数据类型

    1.基本数据类型
    num 布尔 str undefined null
    2.引用数据类型
    obj(arr function )

    4.js中如何对一个对象进行深度克隆

    首先克隆的概念要明白:
    浅度克隆:原始类型为值传递,对象类型仍为引用传递。
    深度克隆:所有元素或属性均完全复制,与原对象完全脱离,也就是说所有对于新对象的修改都不会反映到原对象中。
    深度克隆的实现:为了保证对象的所有属性都被复制到,我们必须知道如果for循环以后,得到的元素仍是Object或者Array,那么需要再次循环,直到元素是原始类型或者函数为止。为了得到元素的类型,我们定义一个通用函数,用来返回传入对象的类型。
    注意:deepClone这个函数中的result一定要判断类型。

    5.箭头函数

    this是不会改变指向对象的指向。
    注意:我们知道call和apply可以改变this的指向,但是在箭头函数中是无效的。

    6.如何控制alert的换行

    function alert_br(){
    if(!document.all){//FF谷歌浏览器用这个
    alert('第一行\n第二行');
    }else{ //IE系列用这个
    alert('第一行\r\n第二行);
    }
    }
    alert_br();

    7.把url解析为对象

    var url="http://www.taobao.com/index.php?key0=0&key1=1&key2=2";
    function parseQueryString(url){
    var str =url.split("?")[1];
    var items = str.split("&");
    console.log(items);
    var result={};
    for(var i = 0; i<items.length ; i++){
    arr = items[i].split('=');
    result[arr[0]]=arr[1];
    }
    return result;
    }
    var obj=parseQueryString(url);
    console.log(obj)

    8.阻止a标签向herf跳转

    dom0是return false;
    dom2就是preventDefault();

    9.JQ实现angular的双向绑定
    10.事件委托(代理)

    原理:在容器节点上绑定事件,利用冒泡,判断事件是否在指定的选择器的节点上被触发。
    优点:只绑定一次,动态创建的也不用重复绑定

    11.闭包

    作用:外部可以读取函数内部的变量
    变量一直被保存在函数内部不被释放掉。
    会造成内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法:在退出函数之前,将不使用的局部变量全部删除。

    12.请介绍熟悉的加载方案,不少于2种?

    1.defer,只支持IE;

    1. async: async的定义和用法(是HTML5的属性) ;
      3.创建script,插入到DOM中,加载完毕后返回callBack。
    13.js中如何定义class,如何扩展prototype

    http://www.ruanyifeng.com/blog/2012/07/three_ways_to_define_a_javascript_class.html
    es6中 class Person {
    constructor(name) { this.name = name; }
    say () { console.log("say hi"); }};
    new Person().say()

    14.glup和fis3压缩工具

    http://fis.baidu.com/fis3/docs/user-dev/uri.html

    15.如何添加html元素的事件,有多少种方法

    1.给元素直接绑定on事件类型
    2.DOM0级
    3.DOM2级

    16.

    相关文章

      网友评论

          本文标题:面试总结

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