美文网首页
2018-01-22

2018-01-22

作者: Cyril丶 | 来源:发表于2018-01-22 16:50 被阅读0次

    进行一波 强有力的复习

    性能优化
        
        1.稳定
        2.扩展
        3.性能
    
        网络性能
        执行性能
    ============================================
    网络性能
        第三方工具
            Chrome      NetWork     
                    需要经验支撑分析。
    
            Firefox     YSLow
                http://yslow.org/
    
                插件版
                    必须先安装       Firebug
                    进入YSLow官网
                    点击Firefox
                    点击Add to Firefox
    
                    一定要在选项中把自动运行勾选
    
    
                书签版
                    进入YSLow官网
                    点击install
                    把yslow按钮拖放到书签栏
                    重启浏览器
                    书签版不能检测https
    
                    有问题了。
    
        网络性能优化
            1.减少http请求
                1个文件=一次连接+一次请求+一次等待+一次响应
                100个文件=100连接+100请求+100等待+100响应
    
                    合并文件
            2.合并文件
                a).减少http请求
                b).让资源更小
                    4KB一个单位,不足4KB按照4KB算
            3.压缩代码
                让文件更小
            4.使用CDN加速
            5.使用GZIP压缩
            6.使用DNS
            7.懒加载
    
    
            更多搜索:雅虎军规
    ==================================================
        执行性能
            1.尽量不使用全局变量
            2.尽量少使用闭包
            3.减少DOM操作
            4.少使用定时器
            5.尽量使用正则操作字符串
            6.尽量不使用属性
            7.尽量使用CSS3
    
            减少DOM操作
            尽量不使用定时器
            尽量不使用属性
                var len = arr.length;
                    for(var i=0;i<len;i++){
                }
    
            不太有用
                var str = '';
                str+='abc';
                str+='bcd';
                str+='cde';
    
                var arr = [];
                arr.push('abc');
                arr.push('bcd');
                arr.push('cde');
                var str = arr.join('');
    
                字符串本身不可更改
    =================================================
    身份证校验
        15位或18位
        第一位一定不是0
        最后一位可能是xX
    
        /^[1-9](\d{13}|\d{16})[0-9xX]$/
    ==================================================
    字符串操作
        $.trim()        去掉首尾空格
    ==================================================
    面向对象(OOP)
        不知道原理,但是不影响使用。
    ==================================================
    类       Class   
            泛指一类事物
    对象  Object
            某一个具体的东西
    
    ==================================================
    对象由什么组成?
        属性——特征
        方法——行为
    
        什么是属性   
            变量和属性一样。
            属性是属于某个对象的。
            变量是自由的。
        什么是方法
            函数和方法一样。
            方法是属于某个对象的。
            函数是自由的。
    ====================================================
    创建一个类   
        构造函数
            因为是创建对象的
    
    
        两个问题:
            1.没有new
            2.同一个类的方法,不相等
    ================================================
        加new
            1.开头加new Object();
            2.结尾加return this;
    
        加方法不能直接在构造里写。   
            给构造的原型加
    
            构造函数的原型
            Person.prototype
    ====================================================
        属性给构造的this加
        方法给构造的原型加
    Person类
        function Person(name,age,gender){
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
        Person.prototype.showName = function(){
            return this.name;
        };
        Person.prototype.showAge = function(){
            return this.age;
        };
        Person.prototype.showGender = function(){
            return this.gender;
        };
    ===============================================
        Dog 狗类
            属性
            方法
    ==============================================
    this是什么?
        不看定义,只看调用
        方法是谁的,this就是谁
        优先级
            高   
                new             Object
                定时器             window
                方法、事件       对象本身
                正常调用        window\undefind
            低
        只管一层、只看最后一次调用
        只看最后一次调用
    ============================================
    面向对象三大特性:
        封装      抽
        继承      子继承父.父类有的,子类一定有。子类有的,父类不一定有。父类改变,子类跟着变。
        多态      多种状态、多重继承
    =================================================
    继承
        属性
        方法
    
        Person  人类
            属性
                name age gender
            方法
                showName() showAge() showGender()
        Worker  工人类 
            属性
                name age gender job
            方法
                showName() showAge() showGender() showJob()
    
    
        矫正this指向
            fn.call(this指向谁,arg1,arg2....);
            或者
            fn.apply(this指向谁,[arg1,arg2,arg3...]);
    
    
        属性继承
            function 子类(a,b){
                父类.call(this,a,b);
                或者
                父类.apply(this,arguments);
            }
        方法继承
            a).
            子类.prototype = 父类.prototype;
            问题:
                子类的私有方法,父类也有。
                原因:
                    引用。
            b).
            for(var key in 父类.prototype){
                子类.prototype[key] = 父类.prototype[key];
            }
            问题:
                子类的实例,不属于父类
            c).
            子类.prototpye = new 父类();
            瑕疵:
                子类实例.constructor 等于父类
            d).
            子类.prototype = new 父类();
            子类.prototype.constructor = 子类;
    
    万物皆对象
    
    ======================================================
    typeof              检测基本数据类型
    instanceof          检测复合类型
    constructor             检测构造函数
    ======================================================
    对象会有引用
    ======================================================
    原型链
        现在当前实例身上找,如果没有找构造类,如果类没有找父类原型,一级一级往上找,直到找到Object的原型。 如果没有就是 undefined 
    

    相关文章

      网友评论

          本文标题:2018-01-22

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