美文网首页
无标题文章

无标题文章

作者: qizi | 来源:发表于2016-10-25 15:58 被阅读0次

    ## 知识点

    1. 算法

    基本的排序算法,时间复杂度

    2. 数据结构

    链表,查找,插入;平衡二插树,红黑树

    2. 网络

    TCP/IP,HTTP,HTTPS

    3. 项目

    项目要精心准备,要好好添油加醋,丰富项目内容,但要有限度

    4. 前端

    1. 跨域,浏览器的同源策略,以及跨域请求的方法(jsonp)

    2. 闭包,相应的设计模式,单例模式

    3. {}=={} []==[]  null==undefined,js中的基本数据类型,字面值和复杂值

    4. 布局,圣杯布局,两列自适应布局

    5. !important 网站的性能优化

    6. 手写jquey插件,在jquery方法和原型上面添加方法的区别和实现($.extend,$.fn.extend),以及jquery对象的实现(return new jQuery.fn.init)

    7. arguments.callee,以及arguments解释

    8. 前端路由,前后端分离

    9. ES6,promise等新的特性

    10. webpack和gulp和requirejs

    11. vue和react异同点与优势

    12. CSS实现三角形,理解[http://codepen.io/qizi/pen/KgbNjN](http://codepen.io/qizi/pen/KgbNjN)的原理

    13. 原生函数的使用,ajax

    14. 模块加载

    15. 原生dom

    16. js事件处理

    17. 原型链,原型继承和类继承

    18. margin重叠

    19. [Cookie](https://segmentfault.com/a/1190000004556040)

    20. 外部引用CSS中 link与@import的区别

    ## 总结

    1. 设计模式

    > 设计模式是在经验中总结出来的可复用的可维护的代码框架,即使没有刻意在代码中使用设计模式,也可能在不经意中使用。

    设计模式即是找出程序中变化的地方,并将变化封装起来。JS中的设计模式中不同的是原型继承,所有数据都是对象,通过克隆对象,

    来进行实例化,并通过原型链进行查找。

    + 原型模式

    **原型继承的本质:**

    构造器将原型复制在实例对象上,但这种复制是读遍历。

    一般有三种情况:

    + 构造复制:

    从原型中复制出新的实例对象,与原型占用相同的内存空间。

    + 写时复制:

    先不复制,只是链接到原型的地址,读取时直接通过链接读取。

    当需要写入原型对象时,再将原型进行复制

    + 读遍历:

    当需要写入原型对象时,只把要写入对象的成员复制到新的内存空间

    > **注意\__proto\__与prototype的区别:\__proto\__是链接,prototype是原型对象**

    ```javascript

    var obj1 = new Object();

    var obj2 = {};

    Object.getPrototypeOf(obj1) === Object.prototype;//true

    Object.getPrototypeOf(obj2) === Object.prototype;//true

    ```

    > **只有null是没有原型的对象,Object.prototype的原型是null,可通过Object.create(null)创建没有原型的对象**

    但是`Object.__proto__ != null`,在chrome中

    ```javascript

    Object.__proto__ //[[Function]]

    Object.__proto__ === Function.prototype //true

    Function.__proto__ == Function.prototype //true

    Object.__proto__ === null //false

    ```

    基本函数类型的原型都链接到了Function.prototype,因为这些都是构造函数吧。Function的原型连接到了自己的原型对象。

    所以至少在V8的实现中Function是所有原型的顶点,除了null和undefined。

    + 柯里化

    >又称部分求值,先接受一些参数,但并不立刻求值,二是继续返回另外一个函数,并将参数在闭包中保存。等到真正求值时,在一次性求值。

    ```javascript

    var currying = function(fn){

    var args = []

    return function(){

    if(arguments.length === 0){

    return fn.call(this, args)

    }else{

    [].push.apply(args,arguments);

    return arguments.callee;

    }

    }

    };

    var cost = (function(){

    var money = 0;

    return function() {

    for(var i = 0; i < arguments.length; i++){

    money += arguments[i];

    }

    return money

    }

    })();

    var cost = currying(cost);

    cost(100);

    cost(200);

    cost(300);

    cost() //600

    ```

    + 单例模式

    ```javascript

    var single = function(fn) {

    var once;

    return function() {

    return once || (once = fn.apply(this,arguments))

    }

    }

    ```

    相关文章

      网友评论

          本文标题:无标题文章

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